elasticsearch在单机的情况下,大数据需要设置多个primary shard吗?

Is it necessary to set multiple primary shards for very big data when elasticsearch is on a single server?

我在一台服务器上安装了elasticsearch。我想知道在数据很大的时候是否有必要设置num_of_shards大于1?我假设如果我将 num_of_shards 设置为大于 1,但这些分片位于单个磁盘中。当我搜索某些东西并且任务被分配给那些碎片时。性能可能会低于这个场景设置num_of_shards等于1,我的看法有什么问题吗?

我暂时只有一台服务器可用。

每个分片下面是一个完整的 Lucene 索引,为了让 elasticsearch 服务于请求,它需要按顺序查询每个分片。虽然如果使用 SSD 会减轻性能影响,但它仍然会影响性能。通常分片的数量保持多于集群中的节点,因为以后如果你想增加分片的数量,你需要重新索引整个数据,这在某些情况下是不可行的。 This 这篇文章很好地解释了这一点。

我会做一个分片 + 一个副本(可能是不同的驱动器),根据您的使用情况和数据分布,可能有一些理由做多个分片 - 但对于大多数部分来说,一个分片应该没问题。

较新版本的 ES 支持 dynamic resharding,以防您将来添加更多 servers/data。