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%不匹配
