02 ES(Elasticsearch)查询工具设计(查询es数据)

  本篇文章为你整理了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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: