这是我的查询:
"multi_match":{
"query":"test",
"fields":[
"name^2",
"sortName^2",
"externalId",
"type^0.5"
],
"type":"best_fields",
"tie_breaker":0.3,
"minimum_should_match":"30%",
"fuzziness":"AUTO"
}
我的目标是让模糊性适用于除"externalId"之外的所有字段。原因是用户在搜索特定ID时发现很多结果是没有意义的。
我认为,如果一个字段被设置为"未分析",它就不会应用模糊性,但事实似乎并非如此。
有没有一种方法可以在映射中指定字段不是模糊性的候选者?
由于您需要设置每个字段的模糊性,到目前为止,我看到了两种方法:
-
使用dis_max或bool查询组合2个查询
-
对于
externalId
字段,使用模糊性设置为0的有点笨拙的query_string
。查询可能看起来像:{ "query": { "query_string": { "query": "name:test^2 sortName:test^2 externalId:test~0 type:test^0.5" } } }