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

Dav*_*ell 4 elasticsearch

使用Elasticsearch 1.7.2

目的

我想创建一个图表,显示最近n几天用户每天所做的预测数量.在这种情况下,10天.

当前查询

{
    "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
                    }
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题

此查询将返回直方图,但将返回所有文档中所有可用日期的存储桶.它不限于特定的日期范围.

我试过了什么?

我已经尝试了很多方法来解决这个问题,所有方法都失败了.*范围过滤,然后直方图*日期范围聚合,然后直方图桶#使用extended_bounds,全日期,now-10d还有时间戳*尝试直方图聚合内的范围过滤器

任何指导将不胜感激!谢谢.

Ode*_*Niv 7

query 在那种情况下对我不起作用,我使用的是第三个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
                            }
                        }
                    }
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

一个aggs指定nested,一个指定filter,最后一个指定实际聚合.不知道为什么这种语法有意义,但你似乎无法使用两种语法aggs.