Elasticsearch:过去24小时(或时间段)中每种类型的新文档数量

时间:2016-08-01 12:56:11

标签: elasticsearch

我尝试使用以下查询:

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日期间创建了多少,我想完全相同的查询会产生我需要的结果。

1 个答案:

答案 0 :(得分:1)

日期的值以毫秒为单位,因此正确的查询为:

{
  "size": 0,
  "query" : { "range" : { "_timestamp" : { "from" : "1420070400000", "to" : "1451606400000" }  }  },
  "aggs": {
    "langs": {
      "terms": {
        "field": "<field>"
      }
    }
  }
}