Elasticsearch之索引管理

新建索引

索引名字必须全小写。 返回值acknowledged为true即为成功!索引名不得重复!

Elasticsearch默认给的一个索引设置5个分片1个副本,索引的分片数一旦指定后无法修改,副本数可以通过命令修改。

自定义分片和副本数命令如下:

更新副本

使原来的副本数变为2

读写权限

 

 对索引的读写操作进行限制

参数有:

blocks.read_only:true 设置当前索引只读不允许写和更新

扫描二维码关注公众号,回复: 6745965 查看本文章

blocks.read:true 禁止对当前索引进行读操作

blocks.write:true 禁止对当前索引进行写操作

演示不能对当前索引写操作

恢复写入权限直接改为false就行了

查看索引

 

查看多个索引

GET blog,QQ,weChat/_settings

 查看所有索引

GET _all/_settings

删除索引

一旦删除索引,数据就不复存在,请注意备份

DELETE blog

如果删除不存在的索引也会报错

索引的打开和关闭

一个关闭了的索引几乎不占用系统资源

关闭命令:索引不再读写

POST blog/_close

开启命令:正常使用

POST blog/_open

  1. 同时可支持关闭开启多个索引,索引名以逗号隔开即可
  2. 如果索引名不存在,会报错!可以通过ignore_unavailable参数来操作存在的索引 POST a,b,c/_close?ignore_unavailable=true
  3. 关闭所有 POST _all/_close
  4. 关闭以book开头的索引  POST book*/_close 

复制索引

_reindex API 可以把文档从一个索引(源索引)复制到另一个索引(目标索引),目标索引不会复制源索引的配置信息。

把blog索引的文档复制到blog_new 索引中的命令如下:'

也可以在索引源中增加type和query来限制文档,如把blog索引库中article类型下title含有git关键字的文档复制到新的blog_new索引中

收缩索引

一个索引的分片初始化后无法修改,但是可以使用shrink index API 提供的缩小索引分片数机制。不过收缩分片数必须是原始分片数的因子,比如4个分片的索引可以收缩为2、1。如果分片数为素数,那么只能收缩为1个分片。收缩索引之前,索引中的分片都要在同一个节点上。

其实收缩索引的过程就是:先创建一个新的目标索引,设置与源索引相同,但是新的索引分片数量减少

然后把源索引硬链接到目标索引,最后新的索引恢复使用

注意:在收缩之前,索引必须设置为只读,所有分片都会复制到一个相同的节点并且节点健康为绿色的。以收缩blog索引为例,命令如下:

blog_new 为目标索引,在收缩时可指定目标索引的分片数、副本数等配置信息,命令如下

索引别名

给一个索引或者多个索引起的另一名字

 

索引test1取个别名为alias1 

移除别名

支持一次给多个索引创建同一个别名

 换个写法

同样可直接一次性移除别名

增加别名和移除别名也可以混合使用:如

设置别名之后,对索引别名的操作等同于索引的操作

如果别名一对多个索引,使用别名查询就会报错,因为谁也不知道该往哪个索引库中取文档

参数为索引名同样支持通配符,

获取某个索引的别名 

查看“alias1”对应那些索引的别名

查看ES集群上所有的可用别名

猜你喜欢

转载自blog.csdn.net/weixin_42245930/article/details/90181662