Es修改分词相关操作

最近修改了ElasticSearch分词。并reindex索引。

使用的分词插件是Hanlp

修改完分词之后将对应的bin文件上传到服务,并替换对应的bin文件

服务器Es对应的路径elasticsearch/plugins/analysis-hanlp/data/dictionary/

替换完成之后(我使用的Es是3个节点,都要替换),就要重启节点了。

重启节点的安全流程:

1: 关闭集群分片的自动分配

PUT _cluster/settings

{"persistent":{"cluster":{"routing":{"allocation.enable":"none"}}}}.

2: 确认关闭后,重启节点

3: 节点重启成功后,打开集群分片的自动分配

PUT _cluster/settings

{"persistent":{"cluster":{"routing":{"allocation.enable":"all"}}}}.

注意: 在重启Es节点的时候一定要使用安全的流程,博主就是没有关闭Es分片自动分配就重启节点,正好赶上Es写入数据,造成了生产索引长时间的分片Unsigned,索引status一直是黄色的。。就像这样

记录一下查看索引状态的相关命令吧

查看分片状态GET IP:9200/_cat/shards?v  可以看到红框对应的分片就是没有被分配的

查看集群健康GET IP:9200_cat/health?v    注意:正常情况下active_shards_percent 这个字段应该是100.0%

查看Unsigned的日志(这个有助于我们解决问题,没有分片Unsigned就不需要使用)GET IP:9200/_cluster/allocation/explain

索引状态为Yellow持续了两天,lz受不了了因为还要reindex,切换别名。

博主发现没有被分配的分片都在节点node-2上面,于是重启了node-2的节点,结果不是很理想。

最后博主使用命令 POST _cluster/reroute?retry_failed=true 

使用这个命令后可以看到分片一点点的在被分配

 


Reindex之前要先创建索引,可以先创建一个副本数量为0的索引,这样可以提高Reindex的效率,在Reindex之后可以再把副本数量改为需要的数量。

PUT index/_settings
{
  "number_of_replicas":"2"
}

在Reindex好了之后,可以根据需要进行Merge啦,这样操作可以提高查询索引的速度。

GET index/_segments可以看到segments的数量

Merge之前是

使用此命令可以将对应索引执行merge  IP:9200/index/_forcemerge?max_num_segments=1

请求成功后可以发现,数据占用空间会一点点变大

可以使用kibana观察对应索引 Total 和 Primaries 空间大小

在merge之后,他们的大小会恢复到之前,同时查看_segments 可以看到num_search_segments : 1就是成功了。

然后切换别名就好了。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值