简单的说,就是:
- settings是修改分片和副本数的。
- mappings是修改字段和类型的。
一、ES中的settings
查询索引库中的settings信息:
[root@localhost ~]# curl -XGET http://localhost:9200/movies/_settings?pretty
返回的结果如下:
{
"movies" : {
"settings" : {
"index" : {
"creation_date" : "1511770093077",
"number_of_shards" : "5",
"number_of_replicas" : "1",
"uuid" : "pB0UsxjfQT2fW-s8Uy-Nsg",
"version" : {
"created" : "2030599"
}
}
}
}
}
number_of_shards
主分片
number_of_replicas
副本
setting修改索引库的默认配置:
例如:分片数量、副本数量。
查看:curl -XGET http://localhost:9200/movies/_settings?pretty
操作不存在
索引:
curl -XPUT 'http://localhost:9200/liuch/' -d '{"settings":{"number_of_shards":3,"number_of_replicas":1}}'
返回的结果如下:
{"acknowledged":false}
在elasticsearch的head插件中查到如下的结果:
在上图中,有颜色的012是主分片,灰色的012是副本,如果
number_of_replicas
的值是2,则是001122,如下图所示。
curl -XPUT 'http://localhost:9200/liuch/' -d '{"settings":{"number_of_shards":3,"number_of_replicas":2}}'
操作已存在
索引:
curl -XPUT 'http://localhost:9200/movies/_settings' -d '{"index":{"number_of_replicas":1}}'
返回的结果如下:
{"acknowledged":true}
总结:
不存在索引时,可以指定副本和分片;
如果存在索引,则只能修改副本。
在创建新的索引库时,可以指定索引分片的副本数。默认是1。