本篇文章为你整理了02 ES(Elasticsearch)查询工具设计(查询es数据)的详细内容,包含有es查询原理 查询es数据 es filter 查询 es查询模板 02 ES(Elasticsearch)查询工具设计,希望能帮助你了解 02 ES(Elasticsearch)查询工具设计。
1.must
文档 必须 匹配这些条件才能被包含进来。
相当于sql中的 and
2.must_not
文档 必须不 匹配这些条件才能被包含进来。
相当于sql中的 not
3.should
如果满足这些语句中的任意语句,将增加 _score ,否则,无任何影响。它们主要用于修正每个文档的相关性得分。
相当于sql中的or
4.filter
必须 匹配,但它以不评分、过滤模式来进行。这些语句对评分没有贡献,只是根据过滤标准来排除或包含文档。
区别:
must:返回的文档必须满足must子句的条件,并且参与计算分值
filter:返回的文档必须满足filter子句的条件。但是跟Must不一样的是,不会计算分值, 并且可以使用缓存
must和filter是一样的。区别是场景不一样。如果结果需要算分就使用must,否则可以考虑使用filter,使查询更高效。
注意:
当使用should查询时,如果包含了must或者filter查询,那么should的查询语句就不是或者【OR】的意思了,而是有或者没有都行的含义。filter和should语句组合查询,会导致should语句失效。
1 搜索 (state = 0 或者 state不存在的记录) and payState = 1
3 query: {
4 bool: {
5 filter: [{
6 "bool": {
7 "should": [
8 { "term": { "state": 0 } },
9 { "bool": { "must_not": { "exists": { "field": "state" } } } }
12 },
13 { term: { payState: 1 } }
19 }
View Code
以上就是02 ES(Elasticsearch)查询工具设计(查询es数据)的详细内容,想要了解更多 02 ES(Elasticsearch)查询工具设计的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。