php - 合并键存储桶中的doc_count结果

标签 php elasticsearch nosql elasticsearch-5

我有一个查询

'aggs' => [
                'deadline' => [
                    'date_histogram' => [
                        'field' => 'deadline',
                        'interval' => 'month',
                        'keyed' => true,
                        'format' => 'MMM'
                    ]
                ]
            ]

我得到的结果是用键作为月份名称的存储桶。

我面临的问题是,月份名称作为前一年的键的存储桶被下一年的另一个月份覆盖(因为显然键是相同的)。

我想要的结果是,已覆盖的前一个存储桶的doc-count与下一个的doc_count合并。

最佳答案

您可以在建立索引期间添加单独的月份字段并对其进行汇总,也可以使用以下脚本

{
  "size": 0,
  "aggs": {
    "deadline": {
      "histogram": {
         "script":  { "inline" : "return doc['deadline'].value.getMonthOfYear()" },
        "interval": 1
      }
    }
  }
}

创建一个单独的月份字段将具有更好的性能

关于php - 合并键存储桶中的doc_count结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58495864/

相关文章:

php - mysql 数据库规范化

php - 在 PHP 页面上获取 SQL ID 并将其传递给另一个 PHP 页面

mysql - 在 Rails 上的现有 MySQL 数据库上实现 Elasticsearch

cassandra - 不支持带有 2ndary 索引的 ORDER BY

mysql - 为什么 Mysql 不能像 NoSQL 那样具有可扩展性?

php - Slim 忽略 try catch block

elasticsearch - 在将输入转换为json后如何去除多余的字段和值?

javascript - ElasticSearch术语在子字符串上聚合

MongoDB $group 和 $project

php - 如何使用 Yii 中带有 ID 列表的字段中的 ID 获取数据库表中的所有行?