elasticsearch - 在 Elasticsearch 中按日期范围获取计数和分组

标签 elasticsearch

有没有办法获取行数并按小时、天或月对它们进行分组。

例如,假设我有消息

_source{
"timestamp":"2013-10-01T12:30:25.421Z",
"amount":200
}
_source{
"timestamp":"2013-10-01T12:35:25.421Z",
"amount":300
}
_source{
"timestamp":"2013-10-02T13:53:25.421Z",
"amount":100
}
_source{
"timestamp":"2013-10-03T15:53:25.421Z",
"amount":400
}

有没有办法单独获取 {date, sum} 的内容(不一定是这种格式,只是想知道是否有任何方法可以实现这个)

{
{"2013-10-01T12:00:00.000Z", 500},
{"2013-10-02T13:00:00.000Z", 100},
{"2013-10-03T15:00:00.000Z", 400}
}

谢谢

最佳答案

尝试聚合。

{     
  "aggs": {
    "amount_per_month": {
      "date_histogram": {
        "field": "timestamp",
        "interval": "week"
      },
      "aggs": {
        "total_amount": {
          "sum": {
            "field": "amount"
          }
        }
      }
    }
  }
}

此外,如果您想计算索引的数量,请将内容总和替换为:

"sum": {
  "script": "1"
}

希望对您有所帮助。

关于elasticsearch - 在 Elasticsearch 中按日期范围获取计数和分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19258681/

相关文章:

elasticsearch - 用elasticsearch搜索整个世界

java - Elasticsearch spring 实现错误

elasticsearch - 如何在Elasticsearch中的对象列表上执行聚合(例如,avg)?

python - 使用 Python Elasticserarch-py 包时出错

json - 在node.js中获取json输出(使用elasticsearch和express作为Web框架)

java - elasticsearch - 无法找到或加载主类 -Xms2g

elasticsearch - 休眠搜索和Elasticsearch:找不到字段[…]的mapper_parsing_exception +分析器[…]

windows - 如何设置SSH隧道以连接到驻留在AWS EC2服务器上的ElasticSearch和MongoDB?

elasticsearch - 如何在elasticSearch上加入索引

ruby - Logstash中的Ruby脚本