弹性搜索聚合与日期比较和计算

时间:2015-11-30 05:56:14

标签: elasticsearch elasticsearch-dsl elasticsearch-aggregation

嗨,我对弹性搜索有点新意。我需要使用日期比较和动态范围过滤器进行聚合。

就像我需要获取文件计数,其中created_at文件比其identification_date早1周。

所以我尝试了类似这样的东西,但我的约会参数似乎未被使用,实际上改变它永远不会改变我的结果。

       "aggs": {
            "identified": {
                "terms": { 
                    "script": "doc['created_at'].value > (doc['identification_date'].value - diff_date) 
                               && doc['created_at'].value < doc['identification_date'].value",
                    "params": {
                        "diff_date": 604800
                    }
                }
            }
        }

感谢您抽出时间帮忙。

1 个答案:

答案 0 :(得分:0)

因为在抽象级别上,您只需要在某个日期字段前7天创建的文档数量。如果您不希望在某些字段上进一步对结果集进行分组,则不需要聚合。您可以a)在日期字段中使用范围过滤器查询

{
    "range" : {
        "date" : {
            "gte" : "now-7d/d",
            "lt" :  "now"
        }
    }
}

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-query.html