Elasticsearch:为每个用户的私人搜索选择索引策略

问题描述 投票:1回答:1

例如,我有1000个用户。每个用户的数据不大,最大为1GB。因此,我有2种索引策略。

  • Big Indexing:我将有一个索引。然后,每次用户搜索一些数据时,我都会在查询中添加一个user_id
  • 小索引:每个用户都是一个Elasticsearch索引。因为数据不是很大,所以我们只需要1-2个分片。

我认为第二种方法要快得多,因为我们不需要在查询中添加user_id。第一种方法可能会比较慢,因为它将使用许多分片,并且同时必须将user_id计入查询。

但是,他们建议建议将某些ref1 ref2的碎片总数保持相对较小。

在实际环境中,什么是适合我的情况的好的解决方案?

performance elasticsearch sharding elasticsearch-indices
1个回答
2
投票

为每个用户创建一个索引非常浪费资源,尤其是当您有1000多个用户时。如果您的应用程序成功并且您的用户群不断扩大,那么索引计数和分片数量也会随之增加。即使每个索引只有一个分片,但是拥有1000个分片已经占用了大量的资源。

具有单个索引并用user_id字段将所有用户扔进其中,以区分每个用户的数据,效率要高得多。

© www.soinside.com 2019 - 2024. All rights reserved.