0

假设我有 100,000 个来自不同客户组的文档,它们的格式相同,信息类型相同。

来自各个客户组的文档会在一天中的不同时间刷新。有人建议我为每个客户组提供自己的索引,这样当我的个人客户索引在本地刷新时,我可以为该客户创建一个新索引并删除该客户的旧索引。

将数据拆分为多个索引并使用别名进行查询的含义是什么?具体来说:

  • 它会增加我的服务器硬盘要求吗?
  • 它会增加我的服务器 RAM 需求吗?
  • 通过查询别名查询所有索引,elasticsearch 会不会比较慢?

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

4

1 回答 1

2

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

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

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

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

很多因素可以确定其中任何一个是否重要。如果您有大量 RAM 和多个 CPU 和 SSD,那么您可能会没事。

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

于 2015-04-07T20:39:43.040 回答