最典型的是两个应用场景:全文检索 和 复杂查询。
正排索引,也叫正向索引(Forward Index),是通过文档ID去查找关键词(文档内容)。
倒排索引,也叫反向索引(Inverted Index),是通过关键词查找文档ID。
-
must:其查询子句必须全部被满足,逻辑相当于 and ,并且会计算分数。
-
filter:与 must 作用一样,但是不会计算分数。在 filter context 下的查询子句不会计算分数且会被缓存,不会计算分数,所以查询会快
-
should:其查询子句应该被满足,也就是不一定都满足,逻辑相当于 or。
- 如果 bool query 是在 query context 下,且包含 must 子句或 filter 子句,此时只要满足 must 子句或 filter 子句里的条件就算匹配上,should 子句里的条件不会对结果有影响,只会影响分数的计算。
- 如果 bool query 是在 filter context 下,且没有包含 must 子句和 filter 子句,此时必须任意一个 should 查询条件满足才算匹配上。
以上行为都受 minimum_should_match 参数影响,也就是需要满足的 should 子句查询条件的最小数目。
-
must_not:其查询子句必须都不被满足。当子句是在 filter context 下时,不会计算分数且会被缓存。
作者:邦就是我53674
链接:https://juejin.cn/post/6936487066272432142
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
POST _search { "query": { "bool" : { "must" : { "term" : { "user" : "kimchy" } }, "filter": { "term" : { "tag" : "tech" } }, "must_not" : { "range" : { "age" : { "gte" : 10, "lte" : 20 } } }, "should" : [ { "term" : { "tag" : "wow" } }, { "term" : { "tag" : "elasticsearch" } } ], "minimum_should_match" : 1, "boost" : 1.0 } } }
标签:分数,should,filter,elasticsearch,子句,查询,must From: https://www.cnblogs.com/qiaoqifa/p/17648640.html