如何在日期时间聚合中填充空值

时间:2016-02-01 06:44:52

标签: elasticsearch

当我进行日期直方图聚合时,如果中间日期中没有数据,则没有零值。例如,在日期直方图聚合之后,典型结果如下所示:

"buckets": [
  {
    "key_as_string": "2014-08-12T00:00:00.000Z",
    "key": 1409097600000,
    "doc_count": 2066
  },
  {
    "key_as_string": "2014-08-13T00:00:00.000Z",
    "key": 1409184000000,
    "doc_count": 7932
  },
  {
    "key_as_string": "2014-08-16T00:00:00.000Z",
    "key": 1409270400000,
    "doc_count": 9640
  }
]

在这里你可以看到,在日期12,13之后,数据显示为16,因为在日期之间没有数据。我希望日期14,15显示为0作为doc_count。在弹性搜索中是否可能?

1 个答案:

答案 0 :(得分:3)

是的,您可以通过将min_doc_count parameter设置为0来执行此操作,您将得到以下内容:

"buckets": [
  {
    "key_as_string": "2014-08-12T00:00:00.000Z",
    "key": 1409097600000,
    "doc_count": 2066
  },
  {
    "key_as_string": "2014-08-13T00:00:00.000Z",
    "key": 1409184000000,
    "doc_count": 7932
  },
  {
    "key_as_string": "2014-08-14T00:00:00.000Z",
    "key": 1407974400000,
    "doc_count": 0
  },
  {
    "key_as_string": "2014-08-15T00:00:00.000Z",
    "key": 1408060800000,
    "doc_count": 0
  },
  {
    "key_as_string": "2014-08-16T00:00:00.000Z",
    "key": 1409270400000,
    "doc_count": 9640
  }
]