索引设置(分片、副本)
由于Elasticsearch单词过长,因此以后在不是特别强调的场合全部采用ES来称呼。
在ES中要想存储数据,则需要建立索引和类型(7.X版本中移除了,默认为_doc),同时为了保证索引数据高可用、高性能,需要设置分片和副本。采用的HTTP请求(请求方式为PUT
),请求体参数为JSON格式的方式来创建索引,同时设置分片数和副本数。
请求路径
PUT /my_temp_index
/my_temp_index
代表该索引的名称,这个路径在不通的功能下其路径也是不一样的。注意请求符合RESTful风格,并且某些路径是必须符合ES的固定格式。
请求体参数
JSON格式的字符串是必须符合ES的特定的语法的,称之为领域特定语言,英文简称DSL
。该请求体中有两个重要的设置:
number_of_shards
每个索引的主分片数,默认值是 5
。这个配置在索引创建后不能修改。
number_of_replicas
每个主分片的副本数,默认值是 1
。对于活动的索引库,这个配置可以随时修改。
// 完整的创建方式
PUT /my_temp_index
{
"settings": {
"number_of_shards" : 5,
"number_of_replicas" : 1
}
}
然后,我们可以用 update-index-settings
API 动态修改副本数(注意请求路径的_settings
,这个是ES修改设置的固定格式):
PUT /my_temp_index/_settings
{
"number_of_replicas": 1
}