検索プロジェクトの1つでmongoDBでSOLRを使用しています。 SOLRは非常に強力です。 現在、私は、クエリが複数の単語である場合、異なるキーワードに対して異なるスコアを設定する方法を探しています。SOLR - 複数単語の検索クエリで異なる単語に異なるスコア
ユーザーが黒い人形の家を検索する場合
黒の重量は人形より大きく、人形の重量は家よりも大きいはずです。
黒>人形>ハウス
これをSOLRで実装することは可能ですか?はいの場合、どうですか?
検索プロジェクトの1つでmongoDBでSOLRを使用しています。 SOLRは非常に強力です。 現在、私は、クエリが複数の単語である場合、異なるキーワードに対して異なるスコアを設定する方法を探しています。SOLR - 複数単語の検索クエリで異なる単語に異なるスコア
ユーザーが黒い人形の家を検索する場合
黒の重量は人形より大きく、人形の重量は家よりも大きいはずです。
黒>人形>ハウス
これをSOLRで実装することは可能ですか?はいの場合、どうですか?
あなたは(text
という名前のフィールドで検索)標準Luceneクエリ構文で各用語に別々の重みを与えることができます。
text:black^10 text:doll^5 text:house
これはhouse
としてblack
10倍の重みを与え、そしてdoll
5う多くの場合、house
と重いが、半分の重量はblack
である。あなたはあなたが探している結果を得るために体重を調整する必要があります。 q=
フィールドの通常のテキストを(e)dismaxを照会パーサーとして使用する場合は、bq
を使用して、これらのブーストを照会自体とは別に追加することができます。
クエリ内の用語を強調表示してみましたか?クエリ内の用語に対して異なるブースト値を指定することができます。 例:あなたがあなたのクエリを変換する場合:
textfeild:black^6 textfeild:doll^5 textfeild:house^2
あなたが上位文書との結果が、黒黒の横、家で次回のためにマッチします取得します。
用語の重みとブースト値を掛け合わせます。ここで黒は6、人形は5、家は2です。
パーサを使って複数のフィールドで検索が行われるので、q = "complete text"を使いたいと思います。 – sanju
それから、 'field:foo^boost'構文で' bq'を使って、あなたのクエリーをすでにそれと同じに保つことができます。あなたはどこかの言葉にそれらのブーストを追加せずに単一の言葉を後押しすることはできません: – MatsLindh