尝试使用以下类型的ElasticSearch日志构建日期直方图:
{
"_index": "foo"
"_source": {
[…]
"time": "2013-06-12T14:43:13.238-07:00",
"userName": "bar"
}
}
其中直方图每“天”间隔对“时间”字段进行存储,但也是单个用户名的多次出现仅计数一次的情况。
我尝试了以下内容:
{
"query" : {
"match_all" : {}
},
"facets" : {
"histo1" : {
"date_histogram" : {
"key_field" : "time",
"value_script" : "doc['userName'].values.length",
"interval" : "day"
}
}
}
}
我希望每个“histo1”条目的min | max | mean都是各个时间段中唯一用户的数量。但结果始终返回min = max = mean = 1
"histo1": {
"_type": "date_histogram",
"entries": [
{
"time": 1370908800000,
"count": 11,
"min": 1,
"max": 1,
"total": 11,
"total_count": 11,
"mean": 1
},
{
"time": 1370995200000,
"count": 18,
"min": 1,
"max": 1,
"total": 18,
"total_count": 18,
"mean": 1
}
]
}
我是否误解了日期直方图中键/值的工作原理?
答案 0 :(得分:2)
我最终使用了elasticsearch timefacets插件:https://github.com/crate/elasticsearch-timefacets-plugin
其他选项包括:
他们两人都只支持ES版本<不幸的是0.90。