行动是治愈恐惧的良药,而犹豫、拖延将不断滋养恐惧。

es 2.3版本 关于filter的问题

Elasticsearch | 作者 1992w | 发布于2017年03月21日 | 阅读数:4119

下面这两种filter有什么区别?
{
"query":{
"bool":{
"filter":{},
}
}
}


第二种:
{
"query":{
"filtered":{
"filter":{},
}
}
}
已邀请:

medcl - 今晚打老虎。

赞同来自:

告诉你一个好消息,5.0之后,相同的查询,没有query和filter之分了,自动帮你处理cache
上面的,不存在这样的困惑了。
 
上面的第一种,就是普通的结果过滤,和must一样,只是匹配的文档不参与评分。
第二种,query和filter两部分可以理解为bool里面的must组合,filter命中的文档同样不参与评分。
不过执行上,第二种一般是先执行filter得到结果子集,再在子集之上执行query进行有评分的全文匹配。
但是从结果来看是没有区别的。
另外,5.0之后已经没有这个查询了,都会重写成bool查询。
 

要回复问题请先登录注册