本帖最后由 牵网线的 于 2023-6-9 14:51 编辑
问题现象:
客户反馈数据不能处理。排查发现后台日志ElasticSearch报错: - ElasticsearchStatusException[Elasticsearch exception [type=resource_already_exists_exception, reason=index [discusspost/3IyXwPzXQ06z7uwDN-z5Zw] already exists]]
复制代码
百度了一波 报错原因,结果如下: 分词器反复创建,解决方法是直接注释掉代码里面的createIndex()方法,不创建索引就好了。你之前已经删除掉了索引"discusspost",es里是没有"discusspost"索引的。但实体类"DiscussPost"里有"indexName = “discusspost”",你往索引里插入数据时,索引就自动存在了。
问题分析: 按照百度出来的报错原因,就是不能往es里面插入数据了,检查检查es的相关状态。
问题处理:
1、查看es的健康状态,一查吓一跳,es健康状态为red - curl -XGET "http://127.0.0.1:9200/_cluster/health?pretty"
复制代码
2、查看es健康状态为red的分片,把查询到的内存放文本里面云查找一下,定位到unassign的分片名 - curl -XGET "http://127.0.0.1:9200/_cluster/health?pretty&level=indices" > es_health.log
复制代码
3、重启一波分片,让它再自动分片 - curl -XPOST 'http://127.0.0.1:9200/event_2023.06/_close/'
- curl -XPOST 'http://127.0.0.1:9200/event_2023.06/_open/'
复制代码
|