database - Elasticsearch Date直方图存储桶从错误的日期开始

标签 database search elasticsearch aggregate

我有ElasticSearch解析查询。它必须按7d个存储桶汇总总和。
我也使用扩展范围。
但是结果存储桶从错误的日期开始。
Elastic 5.2.2版本。
我做错了什么?

{
  "size": 0,
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "doc.dateExecute": {
              "from": "2017-07-11",
              "to": "2017-07-31",
              "include_lower": true,
              "include_upper": true,
              "boost": 1.0
            }
          }
        }
      ],
      "disable_coord": false,
      "adjust_pure_negative": true,
      "boost": 1.0,
      "_name": "onDates"
    }
  },
  "aggregations": {
    "time": {
      "date_histogram": {
        "field": "doc.dateExecute",
        "interval": "7d",
        "offset": 0,
        "order": {
          "_key": "asc"
        },
        "keyed": false,
        "min_doc_count": 0,
        "extended_bounds": {
          "min": "2017-07-11",
          "max": "2017-07-31"
        }
      },
      "aggregations": {
        "incomingAmount": {
          "sum": {
            "field": "doc.incomingAmount"
          }
        },
        "outgoingAmount": {
          "sum": {
            "field": "doc.outgoingAmount"
          }
        }
      }
    }
  }
}

但是存储桶从“2017-07-06T00:00:00.000Z”开始,以7d的间隔到达“2017-07-27T00:00:00.000Z”。
我缺少什么?谢谢!

更新1

我会尝试查询的许多变体。不同的时区,范围,禁用extendeded_bounds,间隔为7天。仅在1-3d的间隔内有效。

最佳答案

好的,在 flex 论坛上进行一些对话并注册一个错误之后:

1)在ES中使用DateHistogram和ExtendedBounds是棘手的(至少5.2)
DateHistogram从UnixEpoch 1970-01-01开始存储桶,因此,如果您使用天间隔(例如7d或3d等),但需要从左边界开始存储桶-您需要为左边界日期设置偏移量(以ms为单位)。
2)但是我们在5.2.2版本上仍然存在一些错误。以7d的间隔,我们在周四有明确的第一个存储桶(1970年1月1日是周四)。所有其他带有适当偏移量的铲斗。

缺少文档和许多奇怪的行为:(

关于database - Elasticsearch Date直方图存储桶从错误的日期开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44210714/

相关文章:

c# - 在 MS Search Server 2008 中对 å,ä,ö 字符进行排序

elasticsearch - Elasticsearch:more_like_this操作符不返回匹配

mongodb - 如何在数据库中存储和索引 Draft.js 输出?

mysql - 什么更好?每 1,000 行有 100 个表,或者每 10,000 行有 10 个表?

python - 在python中存储和搜索坐标的有效方法

java - 双向图搜索的实现

mysql - 定义添加到数据库中的数据的值(value)的最佳方法是什么?

php - 修改AJAX PHP数据库示例

elasticsearch - 许多 kibana 索引

java - 无法在 Elastic-Search 中创建 TransportClient