参考文档
一个 Elasticsearch 索引只是一个或多个物理分片的逻辑组,其中每个分片实际上是一个独立索引。通过将索引中的文档分布在多个分片上,并将这些分片分布在多个节点上。
一、索引设置
1.1索引静态设置
索引创建时或索引关闭时才能修改的设置;
1.2索引动态设置
在索引运行时可使用更新索引 API 修改的设置;
以下是索引经常使用的设置参数及说明,具体参数及设置请查看官方文档索引模块。
分类 |
参数 |
说明 |
索引静态设置 |
number_of_shards |
索引的主分片数,默认为1只能索引创建时设置,设置后不能修改。 |
number_of_routing_shards |
用于拆分 (split)索引路由分片数 |
|
index.shard.check_on_startup |
打开之前是否应检查分片是否损坏。当检测到损坏时,它将阻止分片被打开。默认值为false |
|
codec |
默认使用LZ4压缩存储数据,可使用best_compression更高的压缩比,但降低存储字段性能。 |
|
索引动态设置 |
number_of_replicas |
每个主分片的副本(备份数),默认值为1 |
index.refresh_interval |
多久执行一次刷新操作,这使得对索引的最近更改对搜索可见。 |
|
auto_expand_replicas |
根据集群中数据节点的数量自动扩展副本的数量。设置为以破折号分隔的下限和上限(例如 0-5)或使用 all 作为上限(例如 0-all)。默认为 false(即禁用)。 |
二、创建索引
索引名称必须符合以下规则,RestApi都在kibana中执行。
- 只能是小写字符
- 不能包含字符:\、/、*、?、"、<、>、|、(空格)、,、#
- 7.0 之前索引可以包含冒号(:),但在 7.0 之后不推荐。
- 不能以-、_、+开头
- 不能是.或..
- 长度不能超过 255 字节(注意是字节,所以多字节字符会更快达到 255 的限制)
- 名字以 . 开头不推荐,除非由插件管理的隐藏索引和内部索引
# 创建名称为test-index-000001的索引,主分片数为1,副本分片为1PUT/test-index-000001{ "settings": { "number_of_shards": 1, "number_of_replicas": 1 } } # 响应示例# cknowledged 表明在集群中索引是否成功创建,# hards_acknowledged 表明在超时之前,是否为每个分片启动了必需的分片副本数量。{ "acknowledged": true, "shards_acknowledged": true, "index": "test"}
三、判断
判断索引是否存在HEAD/test-index-000001#响应200-OK
四、查询索引
#查询全部索引GET/_cat/indices#查询单个索引GET/test-index-000001
五、删除索引
#删除单个索引DELETEtest-index-000001#删除多个索引 多个索引名称以“,”分隔DELETEtest-index-000001,test-index-000002,test-index-000003
六、关闭、开启索引
#关闭索引POST/test-index-000001/_close{ "acknowledged" : true, "shards_acknowledged" : true, "indices" : { "test-index-000001" : { "closed" : true } } } #开启索引POST/test-index-000001/_open{ "acknowledged" : true, "shards_acknowledged" : true}