言葉が違っても探せる?意味検索とキーワード検索の使い分け
「出張のお金を戻してほしい」と検索して、「旅費精算」の資料を見つけたい。こうした言葉の違いを扱う方法に意味検索があります。数値で文章を表す仕組みと、キーワード検索を組み合わせる理由を説明します。
検索する人と、資料を書く人の言葉は違う
資料の正式名称を知っている人なら、題名や管理番号で探せます。一方、初めて手続きをする人は、自分の困りごとをそのまま検索欄に入力するかもしれません。
意味検索は、そのような表現の違いを越えて関連する情報を探すための方法です。Elasticの意味検索の解説では、自然言語を扱うモデルとベクトル検索によって、単語だけでなく意味に基づいて結果を探すと説明されています。
冒頭の旅費精算は、この使い方を示す仮例です。文書の内容や使うモデル、検索の設定によって結果は変わるため、特定の資料が必ず上位に出るという意味ではありません。
文章を数値の並びに変えて、近さを比べる
代表的な方法では、文章を「埋め込み」と呼ぶ数値の並びに変換します。英語ではembeddingといいます。検索する文章と資料を、同じ物差しで近さを比較できる形にするイメージです。
Elasticのベクトル検索の基礎は、埋め込みを多次元の空間に置いた座標として説明しています。意味が近い内容を近くに配置するよう、機械学習モデルが数値へ変換します。検索では、質問の数値と近い資料の数値を探します。
この近さは、内容が事実である確率ではありません。「出張の精算」に近い古い規程が見つかっても、その規程が有効かどうかは別に確かめる必要があります。
資料の版や適用対象を表示する理由はここにあります。関連する資料を見つける仕事と、その資料を使ってよいか判断する仕事は、つながっていますが同じではありません。
品番や固有名詞は、文字そのものも手掛かりになる
意味が近ければよい検索ばかりではありません。たとえば「AB-120」と「AB-120S」が別製品なら、末尾の一文字を区別することが重要です。これは説明用の架空の品番です。
こうした場面では、文字列や項目の一致を使う検索も役立ちます。意味検索へ全面的に置き換える前に、利用者が実際に何を入力するかを見ておきたいところです。
表が見切れる場合は横にスクロールできます
探し方の例 | 手掛かりにしたい情報 |
|---|---|
「出張のお金を戻してほしい」 | 言い換えや、文章が表す意図 |
製品の正確な品番 | 文字列や専用項目の一致 |
今年度の旅費精算ルール | 内容に加えて、年度や適用範囲 |
Elasticのハイブリッド検索は、全文検索とベクトル検索の結果を一つの順位にまとめる方法です。言葉の一致と意味の近さを併用できます。ただし、組み合わせればどの資料でも上位に出せるわけではなく、実際の質問と期待する資料での確認が欠かせません。
答えを生成しなくても、検索だけで役立つ
意味検索の結果は、資料の一覧として返すこともできます。見つけた資料をAIに渡して文章を生成するRAGは、その先にある使い方の一つです。
検索の見直しでは、まず質問と「見つかってほしい資料」を組にしてみてください。正式名称を知る人の検索、言い換えた検索、答えが資料にない検索を分けると、どこで困るかが見えやすくなります。
上位に出たかだけでなく、必要な箇所へたどれたかも確認します。長い規程の先頭だけを見せられる場合と、該当する節が分かる場合では、読者が確認する手間が違うからです。
まとめ
意味検索は表現の違いを扱う助けになり、キーワード検索は正確な名称や文字列を探す手掛かりになります。どちらを使うかは、実際の質問と資料の組み合わせから判断できます。
検索した情報を回答へつなげる流れは、社内資料を使うRAGの基本で紹介しています。
