ElasticSearch实现聚合结果的筛选

2023-11-10

小编我想实现这样一个操作,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"
      ]
    }

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ElasticSearch实现聚合结果的筛选 的相关文章

随机推荐