Elasticsearch date_range聚合性能基准

时间:2018-06-03 18:45:02

标签: elasticsearch

我有一个简单的问题。它们是否对大型数据集上的Elasticsearch date_range聚合查询性能进行了基准测试? https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-datehistogram-aggregation.html

我的具体用例如下:我每个月有大约500万份文件,我想在过去12个月内生成日期直方图。我的查询如下(请原谅语法不准确):

{
  "query": {
    "bool" : {
      "must" : [
        {"term" : { "fieldFoo" : "valFoo" }},
        {"term" : { "fieldBar" : "valBar" }},
        {"term" : { "fieldBarz" : "valBarz" }}
      ]
  },
  "aggs": {
      "range": {
          "date_range": {
              "field": "date",
              "format": "MM-yyy-dd",
              "ranges": [
                  { "from": "xxx", "to": "yyy" }, #docs within last week
                  { "from": "xxx", "to": "yyy" }, #from last week till 2 weeks ago
                  { "from": "xxx", "to": "yyy" }, #from 2 weeks ago till 1 month ago
                  { "from": "xxx", "to": "yyy" }, #from 1 month ago till 2 months ago 
                  { "from": "xxx", "to": "yyy" }, #from 2 months ago till 3 months ago 
                  { "from": "xxx", "to": "yyy" }, #from 3 months ago till 1 year ago 
              ]
          }
      }
  }
}

我打算自己做一些测试和推断,但我想我也想调查一下是否有类似的基准测试。

附录: 此外,我的目标是能够在不到15-20毫秒的时间内对这些查询做出响应。因此,我正在尝试使每个分片可以处理的最大文档数量在该阈值内响应。

1 个答案:

答案 0 :(得分:0)

我建议你通过索引" hot"来利用shard request cache。关于不同索引的数据,因为弹性允许您搜索多个索引。

请记住,每次分片更改时,其缓存都会失效。

您可以为索引使用基于时间的模式:

  • data_2018-01
  • data_2018-02

然后使用*:

进行搜索
GET /data*/type/_search