当前位置: 首页 > 知识库问答 >
问题:

Elasticsearch-复合聚合最大值

席俊达
2023-03-14

我正在尝试获取日期的最大值和最小值。

从文档中,我看不到composite中的max选项:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-composite-aggregation.html#_value_sources

我想要这样的东西:

{
   "size":0,
   "aggs":{
      "intervals":{
         "composite":{
            "size":10000,
            "sources":[
               {
                  "id":{
                     "terms":{
                        "field":"id"
                     }
                  }
               },
               {
                 "minTime": {
                   "min": {
                     "script": "doc['createdAt'].value"
                   }
                 }
               },
               {
                 "maxTime": {
                   "max": {
                     "script": "doc['createdAt'].value"
                   }
                 }
               }
            ]
         }
      }
   }
}

是否可以添加到此查询中,或者我需要为此单独查询?

共有1个答案

裴华荣
2023-03-14

复合聚合允许您在存储桶上分页min和max是应用于每个bucket的度量聚合(即度量聚合不能是复合聚合的源),必须作为子聚合添加到复合聚合中,因此您需要执行以下操作:

{
  "size": 0,
  "aggs": {
    "intervals": {
      "composite": {
        "size": 10000,
        "sources": [
          {
            "id": {
              "terms": {
                "field": "id"
              }
            }
          }
        ]
      },
      "aggs": {
        "minTime": {
          "min": {
            "script": "doc['createdAt'].value"
          }
        },
        "maxTime": {
          "max": {
            "script": "doc['createdAt'].value"
          }
        }
      }
    }
  }
}

 类似资料:
  • 框架集合由搜索查询选择的所有数据。框架中包含许多构建块,有助于构建复杂的数据描述或摘要。聚合的基本结构如下所示 - 有以下不同类型的聚合,每个都有自己的目的 - 指标聚合 这些聚合有助于从聚合文档的字段值计算矩阵,并且某些值可以从脚本生成。 数字矩阵或者是平均聚合的单值,或者是像一样的多值。 平均聚合 此聚合用于获取聚合文档中存在的任何数字字段的平均值。 例如, 请求正文 响应 如果该值不存在于一

  • 我有一些文件存储在Elasticsearch中,如下所示: 我想得到的是字段1、字段2或字段3对每个文档的最大次数的计数,按日期分组,即。期望结果如下: 我在date上使用了一个术语聚合,但不知道如何比较不同的字段,以便使用Elasticsearch聚合来执行此max and count类型的操作。有什么建议吗?

  • 问题内容: 我似乎无法以某种方式收到包含我的聚合的响应… 使用curl可以按预期工作: 我得到答复: 但是在rails中使用代码: 并在浏览器中呈现 我得到一个空的答复: 如何在这里打印出卷曲的聚集体? 问题答案: 我也在为此而苦苦挣扎,但是现在我发现了如何获得聚合结果。 如果您将 elasticsearch-rails 与 elasticsearch-model gem一起使用,则在 模型上 运

  • 问题内容: 我正在尝试使用以下查询对以下数据进行elasticsearch来执行术语聚合,输出将名称分解为标记(请参见下面的输出)。因此,我尝试将os_name映射为multi_field,但现在无法通过它查询。是否可以有没有令牌的索引?例如“ Fedora Core”? 查询: 数据: 输出: 映射: 问题答案: 实际上,您应该像这样更改映射 并且您的aggs应该更改为:

  • 是否有任何方法可以使用带聚合的弹性搜索进行分页?elasticsearch版本为2.3。以下是查询:

  • 我正在尝试根据以下文档创建复合聚合:https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search-aggregations-bucket-composite-aggregation.html 我基本上遵循这个例子: 但每次尝试运行代码时,无论我尝试在哪个字段上聚合,都会出现以下错误: 我做了一些深入的研究,没有看到其他地方出现