elasticsearch - 如何显示日期名称,在 Elasticsearch 中使用日期直方图聚合

标签 elasticsearch

我一直在尝试在 elasticsearch 中使用日期直方图聚合,它以纪元或 yy-mm-dd-mm-ss 格式返回日期。但我想要的是每周获取文档计数,例如 monday 、 tuesday 等。有什么方法可以做到这一点吗?

最佳答案

我可能遗漏了什么,但是,答案不是比 Vineeth 的答案更简单吗?

"aggregations": {
    "timeslice": {
        "histogram": {
            "script": "doc['timestamp'].date.getHourOfDay()",
            "interval": 1,
            "min_doc_count": 0,
            "extended_bounds": {
                "min": 0,
                "max": 23
            },
            "order": {
                "_key": "desc"
            }
        }
    }

这很好,因为它还会包括结果为零的任何时间,并且它会将结果扩展到涵盖整个 24 小时期间(由于 extended_bounds)。

您可以使用“getDayOfWeek”、“getHourOfDay”……(有关更多信息,请参阅“Joda 时间”)。

这对于数小时非常有用,但对于数天/数月,它会为您提供一个数字而不是月份名称。要解决此问题,您可以将时间段作为字符串获取 - 但是,这不适用于扩展边界方法,因此您可能会得到空结果(即 [Mon, Tues, Fri,太阳]).

如果你想要,它就在这里:

"aggregations": {
    "dayOfWeek": {
        "terms": {
            "script": "doc['timestamp'].date.dayOfWeek().getAsText()",
            "order": {
                "_term": "asc"
            }
        }
    }

即使这对您没有帮助,也希望其他人能找到它并从中受益。

关于elasticsearch - 如何显示日期名称,在 Elasticsearch 中使用日期直方图聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29002152/

相关文章:

python - 做批量索引时无法删除 Elasticsearch 中的停用词

java - 索引@MultiField spring-data-elasticsearch。国际化目的

java - 将 JSON 从 Elasticsearch 转换为 Java 对象

elasticsearch - 带有嵌套对象的 Elasticsearch 嵌套查询

elasticsearch - 在 ES : index name is only evaluated on starting execution 中使用 Alpakka 索引的 Akka Streams

elasticsearch - 自动化 Elasticsearch 快照和恢复的最佳方法是什么

elasticsearch - 在将PUT转换到Elasticsearch时为_id生成UUID会导致400

elasticsearch - Kubernetes Persistent Volume在GCE上不起作用

elasticsearch - Logstash 和 ElasticSearch 之间丢失的文档

elasticsearch - 在初始化 RestHighLevel 客户端时,我们总是需要使用新的 RestHighLevel 客户端和新主机吗?