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

Elasticsearch - implications of splitting documents into separate indexes

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

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

将数据拆分为多个索引并使用别名进行查询有什么影响?具体来说:

感谢您的帮助或建议。

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

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

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

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

很多 因素可以决定其中任何一项是否重要。如果你有很多 RAM 和几个 CPU 和 SSD,那么你可能没问题。

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