Elasticsearch中的settings。
ES中的settings可以设置索引库的一些配置信息,主要是针对分片数量和副本数量。其中分片数量只能在一开始创建索引库的时候指定,后期不能修改,副本数量可以随时修改。
首先查看一下ES中目前已有的索引库myschool的默认settings信息。
[es@master elasticsearch]$ curl -XGET 'http://master:9200/myschool/_settings?pretty'
{
"myschool" : {
"settings" : {
"index" : {
"routing" : {
"allocation" : {
"include" : {
"_tier_preference" : "data_content"
}
}
},
"number_of_shards" : "1",
"provided_name" : "myschool",
"creation_date" : "1704763554171",
"number_of_replicas" : "1",
"uuid" : "tRRhSzCLRG6vNGMhRveJlA",
"version" : {
"created" : "7130499"
}
}
}
}
}
此时分片和副本数量默认都是1。针对不存在的索引,在创建的时候可以同时指定分片(5)和副本(1)数量:
curl -H "Content-Type: application/json" -XPUT 'http://master:9200/test1/' -d'{"settings":{"number_of_shards":5,"number_of_replicas":1}}'
我们也可以在cerebro观察新创建的test1索引的分片和副本状态。

针对已存在的索引,只能通过settings指定副本信息。将刚才创建的索引的副本数量修改为3。
curl -H "Content-Type: application/json" -XPUT 'http://master:9200/test1/_settings' -d'{"index":{"number_of_replicas":3}}'

分片是对数据的一种分割,总的数据依旧只有一份,这样可以保证查询的高效性,副本则是复制多份分片的数据,这样可以保证数据的高可靠性,防止数据丢失。简单说,分片是保证高效性,副本保证了可靠性。