Lucene の Term [Boosting][1] クエリ構文、特に Ruby on Rails で sunspot_rails gem に問題があります。これにより、クエリ中に特定の用語の重みを指定でき、特定のフィールドの重み付けとは関係ありません。
sunspot によって生成された HTML クエリは、qf パラメータを使用して、検索するフィールドを設定どおりに指定し、q パラメータをクエリ自体に使用します。キャレットを検索用語に追加してブーストを指定すると (つまり、q=searchterm^5)、ブースト用語なしで結果が返される場合でも、結果は返されません。
一方、HTTP クエリを手動で作成し、検索するフィールド (q=title_texts:searchterm^5) を手動で指定すると、結果が返され、スコアがブーストの影響を受けているように見えます。
つまり、クエリ ターム ブースティングは、qf で指定されたフィールドと組み合わせて機能しないように見えます。
私のアプリケーションは、複数のフィールドにまたがる検索を呼び出し、それらのフィールドに関連付けられたそれぞれのブーストを使用して、条件付きでクエリの個々の用語をブーストします。
洞察はありますか?
[1]: http://lucene.apache.org/java/2_9_1/queryparsersyntax.html#Boosting a Term