我有文件 list
[
{
"shortName": "CA",
"longName": "California"
},
{
"shortName": "New York",
"longName": "New York"
},
]
如何配置查询以仅选择匹配的第一个字段,类似于maximumSouldMatch
= 1例如,如果我搜索
New York
,则它应仅匹配shortName
,但不能同时匹配两者,因为在这种情况下,得分将翻倍 最佳答案
将 multi_match
query与 best_fields
type(碰巧是默认值)一起使用,返回的分数将是最佳匹配字段之一,但如果两个字段都匹配,则不会合并(例如most_fields
或cross_fields
就是这种情况)
{
"query": {
"multi_match" : {
"query" : "New York",
"fields" : [ "shortName", "longName" ]
}
}
}