在elasticsearch中,什么会更快 - 按日期过滤数据或索引不同索引中的数据

时间:2015-08-10 17:07:51

标签: elasticsearch

我需要索引〜十亿条记录。

从elasticsearch查询数据是按月份范围。 (不仅仅是一个月)

什么会更快?

  1. 将我的文档保存在不同的索引上?让我们说每月索引,或
  2. 将其全部保存在一个索引上,因为其中一个文档字段为'date',并按此字段过滤?

1 个答案:

答案 0 :(得分:2)

如果您按月份范围查询,请务必按月拆分索引。 有了十亿个文档,您可能需要在许多节点上使用大量分片。按日期拆分可以获得此信息。另一种方法是使用具有大量分片的单个索引。有十亿个文档,我们可能会根据您的文档大小和硬件来讨论数十或数百个分片。

但是,如果按日期拆分,大多数碎片都可以便宜地回答0个文档与您的查询匹配(假设您的筛选查询正确)并且有一些碎片实际上包含了几个月的所有数据处理查询。因此,它就像查询一个包含查询所需的所有数据的较小索引。