【Difyの検索機能】ベクトル検索・全文検索・ハイブリッド検索の使い分け
ElamyではGoogle Cloudを用いたデータ分析基盤の構築や、生成AIを用いた業務支援まで対応可能です。生成AIやデータ活用によって事業を前に進めたい方は、お気軽にご相談くださ—い。
2. ベクトル検索:AIが意味を理解する検索
ベクトル検索とは?
ベクトル検索は、機械学習(特に自然言語処理)を活用し、検索クエリとデータの意味的な類似度を計算する手法です。
仕組み
- テキストデータを「ベクトル(数値の並び)」に変換
- 検索クエリも同様にベクトル化
- ベクトル同士の類似度(コサイン類似度など) を計算して、最も近いデータを返す
適用シーン
✅ ユーザーが曖昧なキーワードで検索する場合
✅ 表現ゆれ(例:「スマホ」と「携帯電話」)があるデータを検索したい場合
✅ FAQやチャットボットで、ユーザーの質問に最適な回答を提示したい場合
活用例
- ECサイト:「青いカバン」と検索 → 「ネイビーのリュック」がヒット
- ナレッジベース検索:「パスワードを忘れた」と検索 → 「アカウント復旧手順」ページを表示
💡 Difyのベクトル検索は、OpenAIの埋め込みモデル(embedding model)などを活用することで、高精度な検索が可能です。
3. 全文検索:キーワードをピンポイントで探す
全文検索とは?
全文検索は、文書内の単語やフレーズを直接検索する手法です。SQLの検索やElasticsearchのインデックス検索と同様に、キーワードマッチングをベースにしています。
仕組み
- データを索引化(インデックス作成)
- ユーザーの検索クエリと完全一致または部分一致するデータを取得
適用シーン
✅ 特定の単語・フレーズでの検索を重視したい場合
✅ 法令・契約書・技術仕様書など、正確な検索が必要な場合
✅ データベース内のフィールド検索(例:顧客名検索)を行いたい場合
活用例
- ドキュメント管理:「個人情報保護法」と検索 → その単語を含む資料を表示
- 商品検索:「iPhone 15 Pro」と検索 → その商品名を含むデータのみを返す
💡 全文検索はSQLベースの検索エンジン(例:PostgreSQLの)やElasticsearchと相性が良いです。
4. ハイブリッド検索:ベクトル×全文検索のいいとこ取り
ハイブリッド検索とは?
ハイブリッド検索は、ベクトル検索と全文検索を組み合わせた検索手法です。
これにより、意味的な関連性とキーワードマッチの両方を考慮した検索が可能になります。
仕組み
- 全文検索でキーワード一致するデータを取得
- ベクトル検索で意味的に関連するデータを取得
- 両者の結果をスコアリングし、最適な結果を表示
適用シーン
✅ 高精度な検索を実現したい場合
✅ ECサイト・ニュース記事・ナレッジ検索など、多様なデータを扱う場合
✅ 全文検索だけでは拾えない類義語・関連語を考慮した検索をしたい場合
活用例
- ニュース記事検索:「AI技術の進化」と検索 → 「人工知能」「機械学習」の関連記事も表示
- ECサイト:「革の財布」と検索 → 「レザーウォレット」も検索結果に含める
💡 Difyのハイブリッド検索を使うことで、検索精度を最大化できます。
5.検索の精度を向上させる「トップK」と「スコア閾値」とは?
🔹 トップK(Top K)とは?
「トップK」は、検索時に何件の結果を取得するかを決める設定
- 小さい → より関連性の高い情報のみを取得し、精度が向上
- 大きい → 幅広い情報を取得できるが、関係の薄い情報も混ざる可能性
おすすめ
✔ 正確な回答を求める → 3~5
✔ 幅広い情報を取得したい → 5~10
🔹 スコア閾値(スコアしきい値)とは?
スコア閾値は、検索結果の「関連度の最低基準」を決める設定
- 高い → 関連性の高い情報のみ取得し、不要なデータを排除
- 低い → より多くのデータを取得できるが、精度が低下
おすすめ設定:
✔ 厳密な検索をしたい → 0.7~0.9
✔ 幅広く情報を取得したい → 0.4~0.5
まとめ
目的 | トップK | スコア閾値 |
正確な回答を出したい | 3~5 | 0.7~0.9 |
幅広く情報を取得したい | 5~10 | 0.4~0.5 |
できるだけ多くのデータを取得 | 10~15 | 0.2~0.4 |