0

假设我有来自不同客户组的100,000个文档,它们的格式相同,并且具有相同类型的信息。Elasticsearch - 将文档拆分为单独索引的含义

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

将数据拆分为多个索引和使用别名查询有什么影响?具体如下:

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

谢谢任何​​帮助或建议。

+1

最终有多少指数? –

+0

@AndreiStefan感谢您的评论。它很难说。从大约10开始,但在未来它可能会显着增加。 – Jimmy

+1

这个想法是,每个节点可以容纳一定数量的碎片。取决于你如何使用这些索引(频繁地进行索引/搜索,频率如何),节点可以容纳的最大分片数量也会有所不同。进场也会涉及每个索引配置的分片数量和复制数量。这将是我最初的问题的原因。如果通过“刷新”你的意思是改变该索引的所有文档,那么我认为建立一个新的索引效率会更高。但请记住碎片的数量。 –

回答

2

每个指标在所有级别上都有一些开销,但通常很小。对于100,000个文件,我会质疑是否需要拆分,除非这些文件非常大。通常,每个加入指数将:

  1. 需要插入缓冲区和内存一定量

  2. 有其他每个索引相关的任务,它是在相对磁盘自己的合并开销较大的单一指标

  3. 提供在查询时有一些延迟增加,因为导致合并如果查询跨越多个索引

很多的因素,确定是否有任何这些是重要的。如果你有很多RAM和几个CPU和SSD,那么你可能会没事。

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

相关问题