Elasticsearch多索引性能

时间:2012-10-19 10:25:54

标签: lucene indexing elasticsearch

我正在考虑在我们的Elasticsearch群集中从一个索引转移到基于日期的索引(multi-index),其中包含大量记录。

实际问题是它如何影响ES集群中索引,搜索和映射的性能?

搜索一个巨大的索引需要花费更多的时间而不是数百个大指数吗?

2 个答案:

答案 0 :(得分:2)

搜索一个大型索引所需的时间较短,而不是数百个较小的索引。

如果您主要只搜索其中一个分解的索引,那么以这种方式破坏索引可能有助于提高性能。在您的情况下,如果您经常需要搜索特定日期添加的记录,那么您可能会在此方面获得性能方面的帮助。如果您将主要搜索整个索引范围,那么通常最好在单个整体索引中进行搜索。

答案 1 :(得分:1)

最后,我们在公司实施了ES多索引。对于我们的应用,我们选择了月度指数策略,因此我们每个月都会创建一个新指数。

当然,正如@femtoRgon建议的那样,对所有较小索引的搜索需要更多一点,但由于其逻辑原因,应用程序的速度已经提高。

所以,我建议所有想要从一个索引转到多个索引的人:研究你的应用程序需求并选择整个索引的适当切片(如果确实需要的话)。 / p>

作为示例,我可以分享我们的应用程序的一些研究结果,这有助于我们决定使用月度指数:

  • 我们的查询中只有90-95%是过去3个月
  • 我们有大约4组查询:今天,上周,上个月和过去3个月(当然,我们可以创建每周或每日索引,但它们太小了,因为我们没有足够的文档内侧)
  • 我们可以向客户解释为什么他需要等待,如果他在整个期间(所有指数)进行“非常规”查询。