• 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

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

  • 相关阅读:
    c语言练习71: 找出数组的最⼤公约数
    SpringBoot实现多数据源(三)【AOP + 自定义注解】
    Spring封装的原生WebSocket使用,带组的实现
    开源与人工智能:现状与展望
    JavaScript入门——(2)基础语法(上)
    REGEXP函数正则表达式
    JAVA G1垃圾收集器介绍
    基于SpringBoot+Vue的旅游系统、前后端分离
    Typescript中类的使用
    文件搜索工具测试
  • 原文地址:https://blog.csdn.net/weixin_43770545/article/details/127656480