为什么要为一个Web应用程序使用多个ElasticSearch索引?

时间:2015-08-09 13:13:23

标签: indexing elasticsearch

在询问有关在Web应用程序中使用ES的问题时,已经建议为用户配置文件,数据的另一个索引等提供一个索引,并为日志提供其他几个索引。

将这些全部放在具有多个Web应用程序的集群上,这似乎会让事情变得混乱或混乱。

在这种情况下,人们是否每个应用程序使用一个群集?我有点困惑,因为当我阅读有关索引日志的文章时,它们似乎是指将数据存储在多个索引中,而不是索引中的类型。

其次,为什么每个应用程序没有一个索引,包含日志,用户配置文件,数据等类型?

在Web应用程序的索引中使用多个索引而不是多个类型有什么好处吗?

- 更新 -

除此之外,此问题Elastic search, multiple indexes vs one index and types for different data sets?中的评论在解释原因方面似乎还不够:

  

数据保留:对于应用程序日志/指标数据,请使用不同的索引   如果您需要不同的保留期

这是推荐的,因为删除整个索引而不是索引中的类型更简单吗?是否与数据的存储方式有关,然后在删除数据后恢复空间?

1 个答案:

答案 0 :(得分:0)

我找到了创建多个索引以满足我在ElasticSearch's pagination documentation中寻求答案的主要原因:

  

要理解为什么深度分页存在问题,让我们想象一下   正在一个索引中搜索五个主分片。什么时候我们   请求结果的第一页(结果1到10),每个分片   产生自己的前10个结果并将它们返回给请求   节点,然后对所有50个结果进行排序以选择整体   前10名。

     

现在想象我们要求第1,000页 - 结果10,001到10,010。   除了每个碎片必须生成之外,一切都以相同的方式工作   其前10,010个结果。请求节点然后对所有进行排序   50,050结果并丢弃其中50,040个!

     

您可以在分布式系统中看到排序结果的成本   我们页面越深,指数级增长。有一个很好的理由   对于任何查询,网络搜索引擎都不会返回超过1,000个结果。