如何 select bool 查询中只有一个分支
How to select only one branch in bool query
我有一份文件清单
[
{
"shortName": "CA",
"longName": "California"
},
{
"shortName": "New York",
"longName": "New York"
},
]
如何将查询配置为 select 只有匹配的第一个字段,例如 maximumSouldMatch
=1
例如,如果我搜索 New York
,它应该只匹配 shortName
而不是两者都匹配,因为在这种情况下得分会加倍
使用 multi_match
query with the best_fields
type(恰好是默认值),返回的分数将是最匹配的字段之一,但如果两个字段都匹配则不会合并(就像 most_fields
或 cross_fields
)
{
"query": {
"multi_match" : {
"query" : "New York",
"fields" : [ "shortName", "longName" ]
}
}
}
我有一份文件清单
[
{
"shortName": "CA",
"longName": "California"
},
{
"shortName": "New York",
"longName": "New York"
},
]
如何将查询配置为 select 只有匹配的第一个字段,例如 maximumSouldMatch
=1
例如,如果我搜索 New York
,它应该只匹配 shortName
而不是两者都匹配,因为在这种情况下得分会加倍
使用 multi_match
query with the best_fields
type(恰好是默认值),返回的分数将是最匹配的字段之一,但如果两个字段都匹配则不会合并(就像 most_fields
或 cross_fields
)
{
"query": {
"multi_match" : {
"query" : "New York",
"fields" : [ "shortName", "longName" ]
}
}
}