環境
これは、主に Lucene (またはおそらく Solr) の内部に関する質問です。主なトピックはファセット検索です。この検索では、オブジェクトの複数の独立した次元 (ファセット) (車のサイズ、速度、価格など) に沿って検索を行うことができます。
リレーショナル データベースで実装する場合、ファセットは任意の順序で検索できるため、多数のファセットに対してマルチフィールド インデックスは役に立ちません。耐えられない。
Solr は、ファセット検索タスクにうまく対処するように宣伝されています。私が正しく考えると、Lucene が (おそらく) マルチフィールド クエリ (ドキュメントのフィールドがオブジェクトのファセットに関連する場合) でうまく機能する必要があります。
質問
Luceneの逆インデックスはリレーショナル データベースに格納でき、一致するドキュメントの交差を自然に取得することも、単一フィールド インデックスを使用する RDBMS で簡単に実現できます。
したがって、Lucene には、逆インデックスに基づいて一致するドキュメントの交差を取得するだけでなく、複数フィールドのクエリに対する高度な手法がいくつかあると思われます。
問題は、このテクニック/トリックは何ですか? より広く: Lucene/Solr が RDBMS よりも理論的に優れたファセット検索パフォーマンスを達成できるのはなぜですか?
注: 私の最初の推測では、Lucene は、ドキュメント フィールドから構築されたベクトル空間をディメンションとして分割するために何らかの空間分割方法を使用しますが、Lucene は純粋にベクトル空間ベースではないことを理解しています。