es 多字段分词查询优化
es多字段查询时,优化字段查询权重.比如:有2个字段name和teacher 看下面查询
{
"query": {
"bool": {
"should": [
{"term":{"name":"文化"}},
{"term":{"teacher":"文化"}}
]
}
}
}
这样去查的话,name和teacher权重相同,但是如果想优先排name中包含文化的数据,使用下面查询
{
"query": {
"bool": {
"should": [
{"term":{"name":"文化"}},
{"bool": {
"should": [{"term":{"teacher":"文化"}}]
}
}
]
}
}
}
把对teacher的查询嵌套到对name查询的里面,那么对name计算权重就会加大.
使用minimum_should_match参数提高匹配精度
3<-15% 9<-3 : ‘3<-15%’表示如果clauses不大于3个,要求全匹配,大于三个则允许有15%不匹配

浙公网安备 33010602011771号