セマンティック検索とキーワード検索の違いとは?RAGの精度を左右する検索技術|LLM入門 4.4

4.4 セマンティック検索とキーワード検索の違い
RAG(Retrieval-Augmented Generation)は、生成AIに適切な文脈を与えるために「検索」を活用しますが、そこで使われる検索手法は従来のものとは大きく異なります。特に重要なのが、RAGが採用する**セマンティック検索(semantic search)と、一般的なキーワード検索(keyword search)**との違いです。
このセクションでは、この両者の本質的な違いを明らかにし、それぞれのメリット・デメリット、そして実務においてどう使い分けるべきかを解説します。
キーワード検索とは?
キーワード検索は、指定された単語や語句が、どこに・どの頻度で含まれているかに基づいて文書を探す方式です。代表的な手法としては、全文検索エンジン(ElasticSearchやSolr)に実装されている TF-IDF や BM25 が挙げられます。
特徴:
-
高速でスケーラブル
-
精度が安定しやすく、ドキュメントのハイライトも明確
-
一致する単語がないとヒットしない
-
意味の類似や言い換えには対応できない
例:
ユーザーが「退職 手続き」と検索した場合、「退職に伴う手続き」や「会社を辞める際の流れ」といった、直接キーワードを含まない文書は見落とされる可能性があります。
セマンティック検索とは?
セマンティック検索は、意味ベースの検索とも呼ばれ、単語や文章の「意味的な近さ」を基準に検索対象を評価します。これは、自然言語をベクトル空間にマッピングし、類似性(主にコサイン類似度)を使って判断する手法です。
特徴:
-
意味が近ければ表現が違っていてもヒットする
-
文脈に沿った関連情報を抽出しやすい
-
単語の一致に頼らないため、検索漏れを減らせる
-
誤ヒット(関連性の薄い文書が引っかかる)リスクがある
-
実装にはEmbeddingとベクトル検索エンジンが必要
例:
「健康保険の資格喪失後はどうなりますか?」という質問に対して、「任意継続制度についての説明」や「社会保険の切り替え手順」といった、直接同じ単語を含まない文書でも意味的に関連していれば返されます。
検索結果の「質」の違い
キーワード検索では、検索語の一致度がスコアの主軸です。一方、セマンティック検索では、言語的な意味の近さが評価基準になります。
比較項目 | キーワード検索 | セマンティック検索 |
---|---|---|
一致基準 | 単語の出現 | 意味の類似性 |
言い換え対応 | 弱い | 強い |
誤ヒットの傾向 | 少ない | 稀に多い |
処理速度 | 高速 | やや重い(高次元処理) |
実装難度 | 低い | やや高い(ベクトル技術が必要) |
向いている場面 | 正確な文字列検索が必要なとき | 柔軟な質問や曖昧な表現に対応したいとき |
ハイブリッド検索という選択肢
実務では、「意味ベースの柔軟性」と「文字ベースの確実性」を両立させたい場面も多く存在します。
このときに注目されているのが、**セマンティック検索とキーワード検索を併用する“ハイブリッド検索”**です。
-
検索段階で両方を走らせ、結果を合成(スコア加重)
-
キーワードフィルター+意味スコアでランキング
-
セマンティック検索後にキーワードによる再ランクを実施
たとえば、Weaviate や Pinecone などは、このハイブリッド検索に標準対応しています。
検索の進化が生成の質を変える
RAGの真価は、Retrieverが「文脈としてふさわしい情報」をどれだけ正確に集められるかにかかっています。その意味で、セマンティック検索は単なる置き換えではなく、「生成AIの前段階を最適化するための進化」と言えるでしょう。
逆に、Retrieverの品質が低ければ、どれほど高性能なLLMを使っても意味のない回答が生成されることになります。
主要ツール・サービスの選び方
このセクションでは、検索という行為の本質的な変化──「キーワードベースから意味ベースへ」──を整理し、RAGがなぜセマンティック検索に依存するのかを明らかにしました。
次の章「第5章 主要ツール・サービスの選び方」では、実際にRAGを実装する際に利用される主要ツール(OpenAI Embeddings、LangChain、LlamaIndexなど)の選び方について詳しく見ていきます。

下田 昌平
開発と設計を担当。1994年からプログラミングを始め、今もなお最新技術への探究心を持ち続けています。カテゴリー
検索履歴
チーム

任 弘毅
株式会社レシートローラーにて開発とサポートを担当。POSレジやShopifyアプリ開発の経験を活かし、業務のデジタル化を促進。

下田 昌平
開発と設計を担当。1994年からプログラミングを始め、今もなお最新技術への探究心を持ち続けています。