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

如何将嵌套文档的日期直方图聚合限制在特定的日期范围内?

江睿
2023-03-14

版本

使用Elasticsearch1.7.2

目的

{
    "size": 0,
    "aggs": {
        "predictions": {
            "nested": {
                "path": "user_answers"
            },
            "aggs": {
                "predictions_over_time": {
                    "date_histogram": {
                        "field": "user_answers.created",
                        "interval": "day",
                        "format": "yyyy-MM-dd",
                        "min_doc_count": 0
                    }
                }
            }
        }
    }
}

此查询将返回直方图,但将返回所有文档中所有可用日期的桶。它不限制在特定的日期范围内。

我试过什么?

我尝试了很多方法来解决这个问题,但都失败了。*范围筛选器,然后直方图*日期范围聚合,然后直方图桶*使用extended_boundswith,完整日期,now-10d和时间戳*在直方图聚合内尝试范围筛选器

任何指导将不胜感激!谢了。

共有1个答案

刘丰羽
2023-03-14

查询在这种情况下对我不起作用,我使用的是第三个AGGS:

{
    "size": 0,
    "aggs": {
        "user_answers": {
            "nested": { "path": "user_answers" },
            "aggs": {
                "timed_user_answers": {
                    "filter": {
                        "range": {
                            "user_answers.created": {
                                "gte": "now",
                                "lte": "now -10d"
                            }
                        }
                    },
                    "aggs": {
                        "predictions_over_time": {
                            "date_histogram": {
                                "field": "user_answers.created",
                                "interval": "day",
                                "format": "yyyy-MM-dd",
                                "min_doc_count": 0
                            }
                        }
                    }
                }
            }
        }
    }
}

一个aggs指定nested,一个指定filter,最后一个指定实际的聚合。我不知道为什么这个语法有意义,但是您似乎不能在同一个aggs上使用两个语法。

 类似资料:
  • > 每个对象表示一个重复发生的事件。该事件可以在多个日期发生。因此,请考虑以下内容: 我有一个日历在客户端,用户可以选择一个日期范围。 > 对所选日期范围的每个条目进行调用,并在客户端处理聚合。问题是会有大量的读取,因为我们会多次读取重叠的日期范围内的同一个列表对象。 尝试使用类似ElasticSearch/Algolia的服务来完成此操作 任何建议都会很有帮助!

  • 以下弹性文件:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-datehistogram-aggregation.html 如何进行日期范围聚合并显示与相关日期段匹配的所有文档,而不是文档计数。 聚合: 回应: 也许我需要做一些子聚合或其他什么? 有什么想法吗?

  • 问题内容: 我一直在尝试在Elasticsearch中使用日期直方图聚合,并且它以纪元或yy-mm-dd-mm- ss格式返回日期。但是我想要的是获取每周的文档计数,例如星期一,星期二等。我有什么方法可以做到这一点? 问题答案: 您需要采用其他方法。使用脚本,您可以将日期时间转换为星期几。在此值上,如果您应用术语汇总,它应该可以正常工作。 将日期时间值转换为工作日的脚本 查询以获取值 您还可以在此

  • 问题内容: 我需要限制用户可以从中选择什么。 我似乎无法弄清楚如何限制分钟数,因此他们无法选择过去的日期。 如果我不能这样做,是否还有其他小部件可以让我具有这种灵活性? 问题答案: 根据我收到的建议,以下是我想出的方法:将可选日期限制为仅当日和之后。这适用于GWT 2.1.1 为了完整起见,以下是处理日期的辅助方法:

  • 本文向大家介绍JQuery日历插件My97DatePicker日期范围限制,包括了JQuery日历插件My97DatePicker日期范围限制的使用技巧和注意事项,需要的朋友参考一下 本文实例向大家介绍了JQuery日历插件My97DatePicker日期范围限制的方法,分享给大家供大家参考,具体内容如下 ```<input class="Wdate" id="d1" onclick="Wdate

  • 问题内容: 如果我在表中有2个日期列,并且。如何返回给定日期介于这两个日期之间的行?例如: 如果给定的日期是 它应该返回以下行 来自以下各行: sql可能吗? 我正在使用sql server 2008。 问题答案: 使用SQL Server,它实际上非常简单: