解説
単語が一致していなくても、意味が近ければヒットする検索方法。「車」で検索して「自動車」や「マイカー」がヒットするのはこの技術のおかげ。
さらに詳しく解説
意味検索(Semantic Search)は、キーワードの一致ではなく「意味の近さ」で文書を検索する技術です。「クエリ」と「文書」の両方をベクトル化して、ベクトル空間での近さで関連度を判定します。RAG・社内検索・FAQ検索の基盤として広く使われています。
キーワード検索との違い
| 観点 | キーワード検索 | 意味検索 |
|---|---|---|
| 一致基準 | 単語の一致 | 意味の近さ |
| 表現揺れ | 弱い | 強い |
| 言い換え対応 | 不可 | 可能 |
| 計算コスト | 低い | 中〜高 |
| 同義語処理 | 辞書が必要 | 自動的に対応 |
例:「PCが遅い」での検索結果
- キーワード検索:「PCが遅い」という文字列を含む文書のみ
- 意味検索:「コンピュータの動作が緩慢」「パソコンの応答時間が長い」も拾う
仕組み
1. 文書を[埋め込みモデル](/glossary/embedding-model)でベクトル化 → ベクトルDBに保存
2. クエリも同じモデルでベクトル化
3. ベクトル空間での距離(コサイン類似度等)で近い文書を取得主要コンポーネント
代表的なベクトルDB
- Pinecone:マネージドサービス
- Weaviate:オープンソース+クラウド
- Qdrant:高速・オープンソース
- Milvus:大規模対応
- pgvector:PostgreSQL拡張、既存DB活用
- Chroma:軽量・開発向け
ハイブリッド検索
意味検索とキーワード検索の長所を組み合わせる手法も主流です。
クエリ
├─ キーワード検索(BM25)
└─ 意味検索(ベクトル)
↓ 結果統合
↓ [再ランキング](/glossary/re-ranking)キーワードは固有名詞・正確な用語に強く、意味検索は言い換え・概念理解に強いため、両者の組み合わせが現代の検索の標準となっています。
メリットと留意点
メリット
- 自然な言葉での質問に対応
- 同義語・言い換えに頑健
- 多言語対応が容易
留意点
- 数値・固有名詞などの厳密な一致は苦手な場合あり
- 埋め込みモデルの選び方で精度が大きく変わる
- 計算コストが従来より高い
- 日本語対応モデルの選定が重要
実務での導入ポイント
- 日本語対応の埋め込みモデルを選ぶ:multilingual-e5、Cohere multilingual等
- チャンク分割の設計:文書を意味のある単位に分割
- ハイブリッド検索を検討:BM25と組み合わせる
- 評価セットを作成:実データで精度測定が必須
意味検索は「検索体験を一段引き上げる」基本技術で、現代のAI検索・RAGシステムには欠かせないコンポーネントとなっています。
