近年、ベクトル検索技術は高次元データの類似性評価に広く利用されているが、その限界も明らかにされている。ベクトル検索の主な課題は以下の3點である。
これらの課題に対応するため、Apache Solrはベクトル検索とキーワード検索を組み合わせたハイブリッド検索を実裝している。
Apache Solrは以下の進化を遂げており、ハイブリッド検索の実現を可能にしている。
prefilter
、include tags
、exclude tags
などのパラメータをサポート語義検索(KNN)とキーワード検索を組み合わせるため、Booleanクエリパーサーを使用する。
{!edismax qf=text} keyword_query AND {!knn field=vector_field topK=10} vector_query
結果セットは両者の結果數の合計となり、重複はSolrが自動で除去する。
語義検索結果とキーワード検索結果の重複部分を抽出する。後処理(post-filter)と同様のメカニズムだが、クエリフェーズで処理する。
include tags
/ exclude tags
でフィルタの適用範囲を管理function
クエリパーサーで公式を定義する{!func} sum(normalized_lexical_score, vector_similarity_score)
複數の検索関數とソート関數を組み合わせたハイブリッド戦略を実現。結果の順位に基づいて統合する方法であり、単一のスコアに依存しない。Solrでは技術的課題が存在するが、今後の開発で検討が進む。
KNN検索の性能向上と柔軟性の拡張を図る。歐氏距離やコサイン類似度など、多様な類似度計算方式をサポートする予定。
LTRモデルの自適応能力を高め、より多くの語義特徴を組み合わせる。複雑な特徴組み合わせやモデル訓練プロセスの改善が進む。
Apache Solrのハイブリッド検索は、ベクトル検索の限界を補うための重要な技術として注目されている。キーワード検索とベクトル検索を組み合わせることで、説明性、キーワードマッチング、結果の多様性を向上させることができる。今後はRank FusionやLTRの進化により、さらなる検索精度の向上が期待される。実裝においては、検索フェーズとソートフェーズの戦略を明確にし、柔軟なパラメータ調整を行うことが重要である。