だから私が達成しようとしているのは、インデックスごとにカスタマイズされた検索可能なフィールドとの部分的な一致です。検索する値でを生成し、match_phrase_prefix
それが複数の単語である場合は、単語ごとに別の を生成します ( を使用できますprefix
が、バグがあるか、設定が文書化されていません)。
この場合、私は"belden cable"
;を検索しようとしています。クエリは次のようになります。
{
"query":{
"bool":{
"should":
[
{
"indices":{
"indices":["addresss"],
"query":{
"bool":{
"should":
[
{"match_phrase_prefix":{"name":"BELDEN CABLE"}}
{"match_phrase_prefix":{"name":"BELDEN"}},
{"match_phrase_prefix":{"name":"CABLE"}}
]
}
},
"no_match_query":"none"
}
},
{
"indices":{
"indices":["customers"],
"query":{
"bool":{
"should":[
{"match_phrase_prefix":{"_all":"BELDEN CABLE"}},
{"match_phrase_prefix":{"_all":"CABLE"}},
{"match_phrase_prefix":{"_all":"BELDEN"}}
]
}
},
"no_match_query":"none"
}
}
]
}
}
私のターゲット検索は、"belden cable"
最初にある結果を取得し、次に"belden"
orのみを検索すること"cable"
です。
これは (例によって) を含む 4 つ"belden cable"
の結果、次に のみを含む結果"cable"
、さらにの結果を返します"belden cable"
。
検索の完全な価値を持つ結果を後押しするにはどうすればよいですか?("belden cable")
単語と分離された単語の両方のインデックスクエリを分離しようとしましたが、関連性が最悪の結果が得られます。
match_phrase_prefix
また、結果を変更せずにfor内で boost ステートメントを使用してみまし"belden cable"
た..