自社で運営する用語解説メディア「〇〇とは?」(toha.jp)に、掲載済みの用語データだけを根拠として、出典(引用元)リンク付きで回答するAI検索を実装しました。これまでのサイト内検索では辿り着けなかった質問に、根拠を示しながら答えられるようにした事例です。
課題
「〇〇とは?」は約4.8万語を掲載していますが、サイト内検索は用語名がぴったり一致しないと引けませんでした。実際の検索ログには、こんな質問が並んでいました。
- 「じゅりょく」のような打ち間違い
- 「地球の直径は」のような文章での問いかけ
- 「円高と円安の違い」のような2語の比較
いずれも記事はあるのに辿り着けていない状態でした。
利用者の質問に、社内の記事だけを根拠に、出典付きで答えます。だれが何をするかを順番に示します。
「円高と円安の違いは?」のように、正しい用語名を知らなくても質問できます。
打ち間違いや言い回しの違いも吸収し、社内の約4.8万語の中から関係する記事を集めます。
記事に書いていないことは答えず「情報がありません」と述べます。答えの各文には出典番号が付きます。
どの記事が根拠かをクリックで確認できるので、内容をその場で確かめられます。
この仕組みは Claude Code(AIを使った開発) で構築しました。使いすぎ防止・記録・出典付けといった“安全装置”は中心に一つだけ用意してあり、Webの画面でも、お使いのAIツール連携(MCP)でも同じように働きます。
結果
実際の検索ログから作成した設問のうち、答えが掲載されている37問で比較しました。
| 答えに到達した割合 | |
|---|---|
| 従来の用語名検索 | 73.0%(27/37) |
| AI検索(今回) | 100%(37/37) |
- 現在も用語名では引けない10問すべてに、出典付きで回答
- 答えが存在しない質問では、5問すべてで「情報がありません」と明示(事実の捏造は0件)
- 応答は平均11秒、1問あたりのAPI費用は5.85円(いずれも実測)


従来の検索と何が違うのか
同じデータを使っていて、なぜ結果が変わるのかを質問の型ごとに整理しました。
| 質問の型 | 従来の検索 | AI検索 | 実例 |
|---|---|---|---|
| ① 用語名が分かっている | 引ける | 引ける | 「接着剤」「仏教」 |
| ② 打ち間違い・入力途中 | 引けない | 引ける | 「じゅりょく」→ 重力 |
| ③ 文章での問いかけ | 引けない | 引ける | 「地球の直径は」 |
| ④ 2語の比較 | 語順が違うと引けない | 引ける | 「円高と円安の違い」 |
| ⑤ 言い換え・複合語 | 引けない | 引ける | 「自動運転モビリティ」 |
| ⑥ 答えが無い | 0件で終わり | 無いと明言し、近い語を案内 | 「21㎝輝線」 |
複数のページをまたいで、ひとつの答えにする。「地球の直径は」に対し、サイトには「地球の直径」という項目はなく、「地球(半径6,378km)」と「直径(=半径×2)」の別々の2ページがあります。AI検索は両方に出典を付けて約12,756kmと示します。従来は利用者が2ページを読んで自分で計算する必要がありました。
語順・表記の違いを吸収する。「円高と円安の違い」は掲載名が「円安と円高の違い」(語順が逆)。名前一致では引けませんが、AI検索は同じページに辿り着きます。
0件のときに手ぶらで返さない。「情報がありません」と述べたうえで、近い用語を出典付きで案内します。
根拠が見えるので、確かめられる。回答の各文に出典番号が付き、掲載済みのデータ以外は根拠にしません。だから元のページで検証できます。
従来の検索のほうが優れている点
置き換えではなく併用が前提です。
| 従来の検索 | AI検索 | |
|---|---|---|
| 速度 | 即時 | 平均11秒 |
| 費用 | 0円 | 1問あたり5.85円 |
| 一覧性 | 候補を並べて自分で選べる | 1つの答えにまとめる |
用語名が分かっている質問は、従来の検索のほうが速くて安いです。AI検索が効くのは、名前が分からない・打ち間違えた・複数ページにまたがる・文章で聞きたい、という帯です。そこを見極めて併用するのが現実的です。
同様の仕組みは、社内文書・商品データベース・サポートFAQ などにも適用できます。導入のご相談はお問い合わせからどうぞ。
技術構成
- Laravel 13 / PHP 8.3、Claude API(回答生成・質問解析)、OpenAI Embeddings(埋め込み生成)
- 本番DBがベクトル型に非対応のため、埋め込みを量子化して1件512バイトで保存(4.8万件で約38MB)
- 全件の総当りを避け、カテゴリ重心で候補を粗く絞ってから再ランク。既存の曖昧検索(カナ揺れ・タイプミス補正)も併用したハイブリッド構成
- ベクトルDBの新規契約なし。インフラ追加費用ゼロで既存サーバ上に構築
質問の入口は Web/MCP の2系統。中核(検索・出典付け・上限/ログ)は共通です。
OpenAI Embeddings/量子化 512B×約4.8万件≈38MB。カテゴリ重心で粗選 → 再ランク。使用量ログ・月次上限・出典付けは中核に集約(Web/MCP共通)。本番DBはベクトル非対応のため、量子化した埋め込みを通常カラムに保存し、追加のベクトルDB契約なしで運用しています。
計測方法
設問は実際の検索ログから作成し、到達率は「答えが掲載されている37問」で比較しています(Before/Afterで母数が食い違わないよう、同一コーパスで測り直し)。回答中の数値は全50問を出典と機械照合し、49問で一致。精度を追う前に「根拠が無ければ答えない(=黙る)」を先に作り込み、業務で使える信頼性の土台にしています。
AIエージェント対応(MCP)
Webの画面だけでなく、AIエージェント(Claude Desktop / Claude Code 等)から直接呼び出せる MCP にも対応しました。呼び出す側もAIなので、こちらで回答文まで作ると二重になって遅く・高くなります。エージェント向けは「検索して出典を返すだけ」を主役にしています。
| 回答文まで生成 | 検索して出典を返すだけ | |
|---|---|---|
| 1回あたりAPI費用 | 5.85円 | 1件0.0001円未満 |
| 応答時間 | 平均11秒 | 0.6〜1.5秒 |
上限・ログ・出典付けは画面ではなく処理の中心にまとめてあり、新しい入口(MCP)はそこを呼ぶだけなのでWeb用の制御が抜け落ちません。MCPの規格は動きが速く、2026年7月版で接続手順が大きく変わったため、着手時に最新仕様へ合わせています。この窓口は社内検証のみで、外部提供の実績はありません。
学び・設計上の判断
- 「答えられない」と言わせる設計を先に作る。根拠が無いときに黙る仕組みを作り込んだことで、信頼性の土台ができました。
- 既存の検索資産は捨てない。AI検索だけでは打ち間違いに弱く、従来の曖昧検索と併用して初めて実用になりました。
- 制約は設計で回避できる。サーバやDBを増やさずに4.8万件を扱えています。
ここは測っていない(正直な範囲)
- 「人が答えに辿り着くまでの秒数短縮」…到達率は測りましたが、秒数は測っていません
- 利用者満足度…一般公開していないため、実利用者の評価はありません
- 売上・CTR・検索順位への影響…因果は測っていません
Analyzegear