1 ES 索引管理

索引是数据的载体,存储了文档和映射的信息

索引是具有相同结构的文档的集合,由唯一索引名称标定。一个集群中有多个索引,不同的索引代表不同的业务类型数据。

参考官网

 https://www.elastic.co/guide/en/elasticsearch/reference/7.17/indices-create-index.html

1.1 创建索引

索引名称命名规范

  • 仅限小写
  • 不能包括\, /, *, ?, ", <, >, |, ` ` (space character),,, #
  • 7.0之前的索引可以包含":",但这已被弃用,在7.0+中不受支持:
  • 不能以 -、_、+开头
  • 不能是.或..
  • 不能超过 255 字节(请注意,它是字节,因此多字节字符将更快地计入255限制)
  • 以.开头的名称已被弃用,但隐藏索引和由插件管理的内部索引除外

(1)创建默认索引,默认是一个分片和一个副本

PUT /index_zhangsan

ElasticSearch核心技术(索引管理)_数据

(2)创建指定的分片

PUT /lisi
{
  "settings": {
    "number_of_shards" : "3"
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

(3)创建指定的分片和副本

PUT /wangwu
{
  "settings": {
    "number_of_shards" : "3",
    "number_of_replicas" : "2"
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

1.2 查看索引

(1)查看所有的索引

GET _cat/indices

ElasticSearch核心技术(索引管理)_硬链接_02

(2)查看单个索引

GET /index_qingchen

ElasticSearch核心技术(索引管理)_数据_03

1.3 修改索引

(1)修改副本

PUT /lisi/_settings
{
  "number_of_replicas": 2
}
  • 1.
  • 2.
  • 3.
  • 4.

(2)修改分片,修改失败

PUT /lisi/_settings
{
  "number_of_shards": 2
}
  • 1.
  • 2.
  • 3.
  • 4.

ElasticSearch核心技术(索引管理)_数据_04

1.4 删除索引

(1)删除单个索引

DELETE /lisi

(2)基于通配符删除多个索引

DELETE /index_*

1.5 关闭索引

POST zhangsan/_close

ElasticSearch核心技术(索引管理)_elasticsearch_05

1.6 打开索引

POST zhangsan/_open

1.7 克隆索引

克隆的工作原理如下:

  • 首先,它创建了一个与源索引具有相同定义的新目标索引。
  • 然后,它将源索引中的段硬链接到目标索引中。(如果文件系统不支持硬链接,则所有段都会复制到新索引中,这是一个更耗时的过程。)
  • 最后,它恢复了目标索引,就像它是一个刚刚重新开放的封闭索引一样。

只有满足以下要求,才能克隆索引:

  • 目标索引不存在。
  • 源索引必须具有与目标索引相同数量的主分片。
  • 处理克隆过程的节点必须有足够的可用磁盘空间来容纳现有索引的第二个副本。

将索引zhaoliu克隆给zhuqi

#直接克隆会报错index zhaoliu must be read-only to resize index. use "index.blocks.write=true"

PUT /zhaoliu/_settings
{
  "blocks.write": true
}
  • 1.
  • 2.
  • 3.
  • 4.

POST zhaoliu/_clone/zhuqi

ElasticSearch核心技术(索引管理)_数据_06