💘
OpenSearch vector検索とか調べてみた
サイト内検索機能の実装で、OpenSearchの単純なキーワード検索機能を利用したので、
他の機能についても調べてみました。
他の機能は、以下の2つがあります。
- ベクトル検索
- AI検索
ベクトル検索
-
ベクトル化して、インデックス作成し、検索したい単語のベクトル値と近いものを検索できる
引用: 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