wshanshi:总结记录…便于回顾…
一、ES分配内存过小
关于《跑的ES容器自己停了》这件事:查看docker容器log发现es很占用内存,是空间给的太小了。看了下log至少需要2G。日志中还提到了至少设置一个discovery.type,如下图所示。
跑容器时可以参照如下设置。
docker run -d -p 9200:9200 -p 9300:9300 -e ES_JAVA_POTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" --name es f29a1ee41030
二、ES版本与SpringBoot版本冲突
2.1、异常信息
org.elasticsearch.xcontent.XContentParseException: [11:3] [org.elasticsearch.client.core.MainResponse] failed to parse field [version]
nested exception is org.springframework.data.elasticsearch.UncategorizedElasticsearchException: Failed to parse info response. Check logs for detailed information – [11:3] [org.elasticsearch.client.core.MainResponse] failed to parse field [version]; nested exception is ElasticsearchException[Failed to parse info response. Check logs for detailed information – [11:3] [org.elasticsearch.client.core.MainResponse] failed to parse field [version]]
2.2、解决方法
springboot版本和es版本有冲突,选择合适的版本。
三、IK分词器
3.1、异常报错
未安装分词器会出现如下异常:
{“error”:{“root_cause”:[{“type”:“mapper_parsing_exception”,“reason”:“analyzer [ik_max_word] not found for field [subTitle]”}],“type”:“mapper_parsing_exception”,“reason”:“Failed to parse mapping [_doc]: analyzer [ik_max_word] not found for field [subTitle]”,“caused_by”:{“type”:“mapper_parsing_exception”,“reason”:“analyzer [ik_max_word] not found for field [subTitle]”}},“status”:400}
3.2、解决方法
安装IK分词器。
注意:安装的分词器版本需要和ES版本相同。
3.2.1、通过curl命令可以查看ES版本
curl http://localhost:9200
3.2.2、下载分词器
es安装的哪个版本,就下载哪个版本的分词器。
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
3.2.3、分词器cp到容器中
docker cp 文件路径 容器id:/usr/share/elasticsearch
3.2.4、进入容器
docker exec -it elasticsearch /bin/bash
3.2.5、切到指定目录
cd /usr/share/elasticsearch
3.2.6、解压到ik文件夹下
unzip elasticsearch-analysis-ik-7.6.2.zip -d ik
3.2.7、移动到plugins目录下
mv ik plugins/
3.2.8、重启es
docker restart xxxxx
再次尝试,就不会报异常啦。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/115747.html