多模块项目使用 ElasticSearch 报错
@[TOC]
情况 1:启动报错
maven 包引入问题 ClassNotFoundException: org.elasticsearch.client.Cancellable
原因:父 pom 引入 ES 版本了,导致版本冲突
解决方案:修改父 pom 的 ES 的版本即可启动成功
情况 2:java.lang.NoSuchMethodError: org.elasticsearch.action.index.IndexRequest.ifSeqNo()J
原因:有一种说法说 jar 里的 Elasticsearch 版本有错,要移除了再重新引入?答案待确定
解决办法:添加即可
情况 3:java.lang.ClassNotFoundException: org.elasticsearch.client.indices.GetIndexRequest
原因:项目有两个子 model,每个 model 都有一个注入 es client 的 bean,这就造成一个项目里 es 有两套,肯定会有一个被覆盖
解决办法:统一即可
情况 4:xx contains unrecognized parameter: [ccs_minimize_roundtrips]]
"message": "Elasticsearch exception [type=illegal_argument_exception, reason=request [/12_assets_directory_v1/_doc/_search] contains unrecognized parameter: [ccs_minimize_roundtrips]]原因:ES 版本不一致造成的
解决办法:找到索引引用 ES 的地方,确认版本一致
情况 5:I/O reactor terminated abnormally
RestHighLevelClient 请求 ES 报错 ↓
可能原因:原因 1:http/tcp 建立连接请求太多,导致请求加不进去了原因 2:es 内存不够用了,导致请求加不进去了
解决办法:重启 ES 或者增大内存







评论