Elasticsearch - 将文档拆分为单独索引的含义

时间:2015-04-07 19:00:38

标签: elasticsearch elasticsearch-mapping elasticsearch-model

假设我有来自不同客户群的100,000个文档,这些文档的格式与相同类型的信息相同。

来自各个客户群的文档会在一天中的不同时间刷新。我被建议给每个客户组他们自己的索引,所以当我在本地刷新我的个人客户索引时,我可以为该客户创建一个新索引并删除该客户的旧索引。

将数据拆分为多个索引并使用别名查询有什么影响?具体做法是:

  • 是否会增加我的服务器硬盘要求?
  • 是否会增加我的服务器RAM要求?
  • 通过查询别名来查询所有索引,弹性搜索的搜索速度会慢吗?

感谢您提供任何帮助或建议。

1 个答案:

答案 0 :(得分:2)

每个索引在所有级别都有一些开销,但通常很小。对于100,000个文档,我会质疑拆分的必要性,除非这些文档非常大。通常,每个添加的索引都将:

  1. 需要一定数量的RAM用于插入缓冲区和其他与索引相关的任务

  2. 相对于更大的单个索引,它在磁盘上拥有自己的合并开销

  3. 如果查询跨越多个索引,由于结果合并,在查询时提供一些延迟增加

  4. 有很多因素可用于确定其中是否有任何重要因素。如果你有很多RAM和几个CPU和SSD,那么你可能没问题。

    我建议您构建一个尽可能使用最少分片数的解决方案。这可能意味着一个(或至少只有几个)索引。