Elasticsearch查询以及聚合查询

本文介绍了Elasticsearch中bool查询的使用,包括must、filter、should和must_not子句的含义。接着讲解了如何过滤不存在的字段数据以及统计字段出现次数。进一步讨论了exists用于过滤字段不存在的数据。最后,文章详细探讨了聚合查询,如分组查询、多条件聚合以及如何通过java代码处理聚合查询结果。
摘要由CSDN通过智能技术生成

1、条件查询 bool

must:返回的文档必须满足子句的条件,并且参与计算分值
filter:返回的文档必须满足filter子句的条件,不会参与计算分值
should:返回的文档可能满足should子句的条件。
must_nout:返回的文档必须不满足must_not定义的条件。
注意:如果一个查询既有filter又有should,那么至少包含一个should子句。

bool 查询

user 值为kimchy tag 值为tech

"query": {
   
   "bool" : {
   
        "must" : {
   
            "term" : {
    "user" : "kimchy" }
        },
        "filter": {
   
            "term" : {
    "tag" : "tech" }
        },
        "must_not" : {
   
            "range" : {
   
                "age" : {
    "from" : 10, "to" : 20 }
            }
        },
        "should" : [
            {
   "term" : {
    "tag" : "wow" }},
            {
   "term" : {
    "tag" : "elasticsearch" }}
        ]
    }

过滤不存在数据

"query": {
   
        "bool":{
   
            "filter":{
   
                "exists":{
   
                    "field":"subject" }
            }
        }   
    }

统计某个字段出现的次数

size 0 不需要返回文档数据,只需要值

  "size": 0,
   "query": {
   
        "bool":{
   
            "filter":{
   
                "exists":{
   
                    "field":"proofreadresult" }
            }
        }   
    }

返回 某个字段 ischeck值为false 的数量

"size": 0,
   "query": {
   
        "bool":{
   
            "must": [{
   "match": {
   "ischeck": "false"}}],
        }   
    }
}

"size": 0,
   "query": {
   
        "bool":{
   
            "must":  {
   "term" : {
    "ischeck" : "false" }}
        }   
    }
}

返回的数据 value 就是我们需要的数据

{
   
  "took" : 0,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值