所以我想要实现的是与每个索引的自定义可搜索字段进行部分匹配。我生成match_phrase_prefix
带有要搜索的值的 a,如果它超过一个单词,我会为每个单词生成另一个。(我可以使用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"
,然后再搜索 just "belden"
or "cable"
。
这(通过示例)返回 4 个具有"belden cable"
的结果,然后返回一个只有 的结果"cable"
,然后是更多的结果"belden cable"
。
如何提升具有完整搜索价值的结果?(“belden cable”)
我尝试将单词和分离单词的索引查询分开,但它给出了最差的相关性结果。
我也尝试在match_phrase_prefix
for"belden cable"
中使用 boost 语句而不改变结果..