# Shard,replica shardの数の指定について

**URL:** https://discuss.elastic.co/t/shard-replica-shard/191305
**Category:** 日本語による質問・議論はこちら
**Created:** [July 19, 2019, 2:51am UTC](https://discuss.elastic.co/t/shard-replica-shard/191305 "2019-07-19T02:51:37Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![kapibara824](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kapibara824/32/96009_2.png) [@kapibara824](https://discuss.elastic.co/u/kapibara824)
#### Post date: [July 19, 2019, 2:51am UTC](https://discuss.elastic.co/t/shard-replica-shard/191305/1 "2019-07-19T02:51:37Z")

</div>

データノード5台のクラスタを構築し、シャードを5レプリカシャードを４に設定したいのですがやり方がわかりません。

> curl -X PUT xx.xx.xx.xx:9200/\_all/\_settings -H "Content-Type: application/json" -d '  
> {  
> "index":{  
> "number\_of\_shards":5  
> "number\_of\_replicas":4  
> }  
> }'

出力結果

> {"error":{"root\_cause":[{"type":"json\_parse\_exception","reason":"Unexpected character ('"' (code 34)): was expecting comma to separate Object entries\n at [Source: org.elasticsearch.transport.netty4.ByteBufStreamInput@2b5c30aa; line: 5, column: 10]"}],"type":"json\_parse\_exception","reason":"Unexpected character ('"' (code 34)): was expecting comma to separate Object entries\n at [Source: org.elasticsearch.transport.netty4.ByteBufStreamInput@2b5c30aa; line: 5, column: 10]"},"status":500}

インデックスするデータ全てにこの設定が適用されるようにしたいです。

どなたかわかる方よろしくお願いします。

---

<div class="post-metadata">

### Author: ![tsgkdt](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tsgkdt/32/39151_2.png) [@tsgkdt](https://discuss.elastic.co/u/tsgkdt)
#### Post date: [July 19, 2019, 6:57am UTC](https://discuss.elastic.co/t/shard-replica-shard/191305/2 "2019-07-19T06:57:43Z")

</div>

こんにちわ。

作られるIndexすべてに指定したシャード、レプリカの数としたいということでしたら、Templateをお使いになるのはどうでしょうか？

```json
PUT _template/template_1
{
    "index_patterns" : ["*"],
    "settings" : {
        "number_of_shards" : 5,
        "number_of_replicas": 4
    }
}

```

テストとして、index-patternsに\*を指定することで、すべてのIndexがテンプレート使用対象となるようにし、  
shard/replicaの数を指定してあります。  
このようにテンプレートを作っておくと、次にIndexを作成したときに、指定した値が使用されます。

```auto
PUT hoge-index

```

として作ったら、shard、replicaの数も指定した値になっています。

```auto
GET hoge-index/_settings
得られる結果
{
  "hoge-index" : {
    "settings" : {
      "index" : {
        "creation_date" : "1563518649333",
        "number_of_shards" : "5",
        "number_of_replicas" : "4",
        "uuid" : "cN0DC7YaSnyyGE9CIWPAvw",
        "version" : {
          "created" : "7020099"
        },
        "provided_name" : "hoge-index"
      }
    }
  }
}

```

> Unexpected character ('"' (code 34)): was expecting comma to separate Object entries  
> このエラーが出るのは、 "number\_of\_shards": 5のあとに **,** がなく、jsonとして不正だからです。

参考

> **[Index templates | Elasticsearch Guide \[8.11\] | Elastic](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html)**

---

<div class="post-metadata">

### Author: ![kapibara824](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kapibara824/32/96009_2.png) [@kapibara824](https://discuss.elastic.co/u/kapibara824)
#### Post date: [July 22, 2019, 3:20am UTC](https://discuss.elastic.co/t/shard-replica-shard/191305/3 "2019-07-22T03:20:57Z")

</div>

ありがとうございます！解決しました！🤣

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [August 19, 2019, 3:20am UTC](https://discuss.elastic.co/t/shard-replica-shard/191305/4 "2019-08-19T03:20:57Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
