多数のフィールドを持つ Lucene インデックスがあります。一致するフィールドの数でランク付けされたドキュメントを検索し、一致するフィールドの数を結果に示すために使用したいと思います。
私の特定の例では、Lucene インデックスのドキュメントは Web ページを表し、フィールドはタイトル、メタディスクリプション、h1 テキストなどです。
「自転車」などの用語を検索すると、任意のフィールドに「自転車」という単語が含まれるすべてのドキュメントが返されます。ただし、「自転車」というキーワードを含むフィールドの数を示す関連性スコアが必要です。たとえば、タイトルとメタディスクリプションに「自転車」が含まれているドキュメントを、タイトルだけが「自転車」のドキュメントよりも上位にランク付けしたいと考えています。また、最初のドキュメントには 2 つの一致が含まれ、2 番目のドキュメントには 1 つの一致のみが含まれていると判断できるようにしたいと考えています。特定のフィールドでのキーワードの頻度は問題ではありません。私はそれが一致したかどうかを知りたいだけです。
a を使用して 1 つのフィールドで一致を検索できることはわかっていBooleanQuery
ます。これらを組み合わせて、複数のフィールドで AND または OR を実行できますが、任意のフィールドに一致するドキュメントを返すクエリを実行する方法がわかりません。一致するフィールド数の指標。
どんな助けでも大歓迎です!