我有以下查询,结果是正确的数据。但是想要完成排序,意味着先精确匹配然后休息。
enumerate()
我想要完全匹配,然后其他人喜欢 - 汉瑞·奥利弗 M 汉瑞·奥利弗, 汉瑞·陈·奥利弗
答案 0 :(得分:0)
通配符查询上下文中的术语“完全匹配”是模棱两可的,如果不是毫无意义的话。但是,如果我理解正确,您可以boost“完全匹配”through a phrase_prefix
并通过adjusting 将查询字符串(Han).* (Ol).*
:
{
"query": {
"bool": {
"should": [
{
"query_string": {
"query": "(Han).* (Ol).*",
"fields": [
"firstName",
"lastName",
"customerNo"
],
"default_operator": "and",
"type": "phrase_prefix",
"analyze_wildcard": true,
"boost": 10
}
},
{
"query_string": {
"query": "Han* Ol*",
"fields": [
"firstName",
"lastName",
"customerNo"
],
"default_operator": "and",
"analyze_wildcard": true
}
}
]
}
}
}