💘

OpenSearch vector検索とか調べてみた

に公開

サイト内検索機能の実装で、OpenSearchの単純なキーワード検索機能を利用したので、
他の機能についても調べてみました。

他の機能は、以下の2つがあります。

  • ベクトル検索
  • AI検索

ベクトル検索

  • Vector search - OpenSearch Documentation

  • ベクトル化して、インデックス作成し、検索したい単語のベクトル値と近いものを検索できる


    引用: OpenSearch を使⽤したベクトル検索

  • 近似 k-NN 検索で大規模データも近似値検索に対応できる

    • k-NN 検索はクエリ入力に対して最も近いN個のベクトルを取得するアルゴリズムのこと
    • 近似 k-NN 検索はその大規模処理できる版。(詳細は分かりません)
  • 意味検索、RAG、類似画像/動画、レコメンドなどに使われる

  • 例えば、「鬼滅の刃」を検索する場合、、

    • キーワード検索の場合は、「鬼滅」などで検索された場合にヒットする
    • ベクトル検索の場合、「鬼退治」などの意味的な近さでヒットさせられる

AI検索

  • AI search - OpenSearch Documentation
  • ベクトル検索をいい感じにやってくれるやつっぽい
    • ベクトル化してインデックス作成せずとも、OpenSearch側でテキストをベクトル化してくれる
  • ML modelの設定が必要になる!
    • OpenSearch提供のもの or 自分でカスタマイズした独自モデルの利用もできる。
  • 以下検索方法を提供している
    • Semantic search: 意味検索
    • Hybrid search: キーワード検索と意味検索のハイブリッド
    • Multimodal search: テキストと画像データを同時に用いての検索
    • Neural sparse search: Semantic searchのもっと効率よくした版(詳細不明)
    • Conversational search with RAG: 自然言語で検索して、結果回答

まとめ

  • 時代は意味検索
  • ベクトル化にこだわりたいならベクトル検索、、全部いい感じにやってほしいならAI検索

参考リンク

Discussion