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

rya*_*lim 6 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
  }
]
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,在日期 12,13 之后,显示了 16 的数据,因为日期之间没有数据。我希望日期 14,15 显示为 0 作为 doc_count。在elasticsearch中可以吗?

Val*_*Val 5

是的,你可以通过将min_doc_count参数设置为 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
  }
]
Run Code Online (Sandbox Code Playgroud)