• ES相关异常问题总结


    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
    
    • 1

    二、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
    
    • 1

    在这里插入图片描述

    3.2.2、下载分词器

    es安装的哪个版本,就下载哪个版本的分词器。

    wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
    
    • 1
    3.2.3、分词器cp到容器中
    docker cp 文件路径 容器id:/usr/share/elasticsearch
    
    • 1
    3.2.4、进入容器
    docker exec -it elasticsearch /bin/bash
    
    • 1
    3.2.5、切到指定目录
    cd /usr/share/elasticsearch
    
    • 1
    3.2.6、解压到ik文件夹下
    unzip elasticsearch-analysis-ik-7.6.2.zip -d ik
    
    • 1
    3.2.7、移动到plugins目录下
    mv ik plugins/
    
    • 1
    3.2.8、重启es
    docker restart xxxxx
    
    • 1

    再次尝试,就不会报异常啦。

  • 相关阅读:
    【Hello Go】Go语言异常处理
    IO基础操作和常识
    Java-IDEA-类注释快捷键
    R语言CalibrationCurves包绘制带可信区间的校准曲线
    Servlet 综合案例:表白墙
    做一个物联网温湿度传感器(一)SHT30传感器介绍
    03Java基础语法:注释/关键字/字面量/变量
    智慧公厕是对智慧城市“神经末梢”的有效激活,公共厕所实现可感知、可视化、可管理、可控制
    决策树oo
    Labview中for循环“无法终止”问题?即使添加了条线接线端,达到终止条件后,仍在持续运行?
  • 原文地址:https://blog.csdn.net/weixin_43770545/article/details/127656480