ElasticSearch实现聚合结果的筛选

小编我想实现这样一个操作,c_group.id取值格式为 “100*”、 “101*”、 “102*”、 “103*” 而我想做的操作是,聚合时候只返回编号是 “101*”格式的数据。实现的核心代码是:在聚合下面加一个 “include”: "101.*"就可以。

aggs字段提供了过滤的功能,使用两种方式:include可以匹配出包含该值的文档,exclude则排除包含该值的文档。
语句:

 GET /myindex/_search
    {
      "from": 0,
      "size": 1,
      "query": {
        "bool": {
          "must": [
            {
              "term": {
                "my_time": {
                  "value": "2019-01-10 12:15:00"
                }
              }
            },
            {
              "bool": {
                "should": [
                  {
                    "range": {
                      "wireless_1_rate": {
                        "lte": 0.9
                      }
                    }
                  },
                  {
                    "range": {
                      "wireless_rate": {
                        "gte": 0.015
                      }
                    }
                  },
                  {
                    "range": {
                      "erab_1_rate": {
                        "gte": 0.015
                      }
                    }
                  },
                  {
                    "range": {
                      "uppk_rate": {
                        "gte": 0.015
                      }
                    }
                  },
                  {
                    "range": {
                      "uppkteul_rate": {
                        "gte": 0.015
                      }
                    }
                  },
                  {
                    "range": {
                      "ho_rate": {
                        "lte": 0.9
                      }
                    }
                  },
                  {
                    "range": {
                      "wireless_rate": {
                        "lte": 0.95
                      }
                    }
                  },
                  {
                    "range": {
                      "ulprb_rate": {
                        "gte": 0.7
                      }
                    }
                  },
                  {
                    "range": {
                      "dlprb_rate": {
                        "gte": 0.7
                      }
                    }
                  },
                  {
                    "range": {
                      "effennmean": {
                        "gte": 50
                      }
                    }
                  },
                  {
                    "range": {
                      "effecmax": {
                        "gte": 50
                      }
                    }
                  },
                  {
                    "range": {
                      "ho_rate": {
                        "lte": 0.9
                      }
                    }
                  },
                  {
                    "range": {
                      "_avg": {
                        "gte": -105
                      }
                    }
                  },
                  {
                    "range": {
                      "out_rate": {
                        "lte": 0.9
                      }
                    }
                  }
                ]
              }
            }
          ]
          
        }
      },
      "aggs": {
        "aggs_cell_group": {
          "nested": {
            "path": "cell_group"
          },
          "aggs": {
            "duration_ranges": {
              "terms": {
                "field": "c_group.id",
                "size": 100000 ,
                "include": "101.*"
              }
            }
          }
        }
      },
      "_source": [
        "ci"
      ]
    }

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值