Elasticsearch 7.5.2 集群默认只为一个索引创建一个分片

Elasticsearch 7.5.2 cluster is creating only one shard for an index by default

我有一个新设置的 Elasticsearch 7.5.2 集群。当我创建一个索引时,默认只创建一个分片。

我的集群策略如下:

Total Nodes: 5
--------------
Node 1 & Node 2 - Master Only
Node 3          - Master & Data Node
Node 4 & Node 5 - Data Only

找不到任何限制分片创建索引的群集设置。 是集群策略的问题还是我这里缺少任何设置?

请帮我找出问题所在。

早期 Elasticsearch 的主分片默认数量为 5,这与您正在使用的 Elasticsearch 7.X 不同,因此您只会看到 1 个主分片。

Elasticsearch link for this change and more info on 所以回答。

除了适用于@Kamal 已经提到的特定索引的 API 之外,您可以在 elasticsearch.yml 中指定此设置,这对每个索引都有效在您使用 API 调用覆盖之前创建的索引。

配置添加到您的elasticsearch.yml

index.number_of_shards: {your desired number of shards}

注意:这是针对无法动态更改的主分片,因此请谨慎设置,不像 the number of replicas 可以动态更改。

没错。 Post 版本 7,Elasticsearch 默认创建分片大小为 1 的索引,如前所述 here

您始终可以在创建索引时使用以下设置指定索引分片。

PUT <your_index_name>
{
    "settings" : {
        "index" : {
            "number_of_shards" : 5
        }
    }
}

希望对您有所帮助!