【问题标题】:in elasticsearch, what would be faster - filtering data, or index data in different indexes by date在elasticsearch中,什么会更快 - 过滤数据,或按日期在不同索引中索引数据
【发布时间】:2015-08-10 17:07:50
【问题描述】:

我需要索引约 10 亿条记录。

从 elasticsearch 查询数据是按月份范围。 (不只是单月)

什么会更快?

  1. 将我的文档保存在不同的索引上?假设每月索引,或
  2. 全部保存在一个索引上,因为其中一个文档字段将是“日期”,并按此字段过滤?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    如果您按月份范围查询,请务必按月份拆分索引。 对于十亿个文档,您可能需要跨多个节点的大量分片。按日期拆分可以得到这个。另一种方法是使用包含大量分片的单个索引。对于十亿个文档,我们可能会讨论数十个或数百个分片,具体取决于您的文档大小和硬件。

    但是,如果您按日期拆分,您的大多数分片可以廉价地回答 0 个文档与您的查询匹配(假设您的过滤器查询正确)并且有少数分片实际上包含了转换月份的所有数据照顾查询。因此,这就像查询一个较小的索引,其中包含查询所需的所有数据。

    【讨论】:

      猜你喜欢
      • 2015-09-24
      • 2013-04-13
      • 2012-12-01
      • 2021-09-07
      • 2012-12-04
      • 2017-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多