我尝试使用以下查询:
curl -XGET 'localhost:9200/<index>/<type>/_search?pretty=true' -d '
{
"size": 0,
"query" : { "range" : { "_timestamp" : { "from" : "1420070400", "to" : "1451606400" } } },
"aggs": {
"langs": {
"terms": {
"field": "<field>"
}
}
}
}
'
此处的详细信息是2015年1月1日至2016年1月1日。此查询的结果与查询中根本没有“查询”部分相同。
我想要实现的是文档计数仅在给定的时间范围内发生,而不是在那个时间的所有现有文档中发生
我正在使用的类型的映射定义如下:
"_timestamp" : {
"enabled" : true,
"store" : true,
"format" : "date_time"
}
我做错了还是我做错了假设?
编辑:为了澄清,我正在寻找一种方法来查看ES在过去24小时内每个索引每个类型创建了多少文档。但不仅如此,我还想对此进行汇总。
所以,让我们说我们的类型是“艺术”,而我正在聚合的字段是“type_of_art”。
虽然总共有数百万份文件,但在过去的24小时里,只会有7个雕像,5幅画和3部歌剧。例如。
如果我想知道2014年10月1日到2014年11月15日期间创建了多少,我想完全相同的查询会产生我需要的结果。
答案 0 :(得分:1)
日期的值以毫秒为单位,因此正确的查询为:
{
"size": 0,
"query" : { "range" : { "_timestamp" : { "from" : "1420070400000", "to" : "1451606400000" } } },
"aggs": {
"langs": {
"terms": {
"field": "<field>"
}
}
}
}