当前位置: 首页 > article >正文

failed to load elasticsearch nodes

报错现象


[2025-03-06 10:49:52.221][ERROR][main][org.springframework.data.elasticsearch.repository.support.AbstractElasticsearchRepository][mainrace][TID: N/A][distribute-sale] - failed to load elasticsearch nodes : org.elasticsearch.ElasticsearchStatusException: Elasticsearch exception [type=illegal_argument_exception, reason=mapper [promoteType] cannot be changed from type [keyword] to [integer]]

错误原因分析

该错误是由于 Elasticsearch 的索引映射(Mapping)中字段 promoteType 的类型从 keyword 被尝试修改为 integer,而 Elasticsearch ​不允许直接修改已有字段的类型。在 Spring Boot 服务重启时,Spring Data Elasticsearch 可能尝试自动更新索引映射,导致此异常。

详细原因

  1. 字段类型冲突

    • 原有索引定义promoteType 字段类型为 keyword(通常对应 Java 的 String)。
    • 新的实体类定义:在 Spring Data Elasticsearch 的 @Document 类中,promoteType 字段类型被改为 Integer
    • 冲突触发:服务重启时,Spring Data Elasticsearch 检测到实体类字段类型变化,尝试更新 Elasticsearch 映射,但 Elasticsearch 拒绝此操作。
  2. Spring Data 的自动索引管理

    • 默认情况下,Spring Data Elasticsearch 会在应用启动时自动创建或更新索引(通过 spring.data.elasticsearch.repositories.enabled=true)。
    • 如果 @Document(createIndex = true) 且索引已存在,Spring Data 会尝试更新映射,但无法处理字段类型变更。

解决方案

1. 临时修复(快速恢复)​

禁用 Spring Data Elasticsearch 的自动索引更新功能,避免触发映射冲突:

# application.yml
spring:
  data:
    elasticsearch:
      repositories:
        enabled: false

或通过注解关闭自动创建索引:

@Document(indexName = "your_index", createIndex = false)
public class YourEntity {
    // 字段定义
}

http://www.kler.cn/a/590046.html

相关文章:

  • SpringBoot + Mybatis Plus 整合 Redis
  • mariaDB中常见的DDL,DML,DQL语句
  • 协程池是调用端并发请求的缓释胶囊
  • Spring设计模式 八股速记 高层模块底层模块 依赖倒置原则 开闭原则 接口隔离原则
  • WD5202L超低成本 Buck 电源芯片的特性与应用电路解析, 将市电转换为 5V 电压
  • 缓存相关内容
  • 利用AI让数据可视化
  • JVM 垃圾回收器分类及其特点详解
  • 【新人系列】Golang 入门(六):函数基础
  • 用uv管理python环境/项目(各种应用场景)
  • Linux中Tomcat、idea和MySQL的安装
  • 【论文笔记】Contrastive Learning for Compact Single Image Dehazing(AECR-Net)
  • 计组错题笔记
  • 【Docker】-Docker Compose+Dockerfile最佳实践
  • 百度正式发布文心大模型 4.5 及文心大模型 X1
  • 深入理解 HTML 字符实体:解决特殊字符显示难题
  • axios防止重复请求
  • 提高开发效率:公共字段自动化填充方案
  • LeetCode134☞加油站
  • 【农业大数据处理与应用】实验二 随机森林算法与LSTM循环神经网络