Elasticsearch java操作文档时候数据修改/删除成功,但是抛出异常
bug信息
ElasticsearchStatusException[Unable to parse response body
]; nested: ResponseException[method [DELETE], host [http://localhost:9200], URI [/hotel/_doc/395702?timeout=1m], status line [HTTP/1.1 404 Not Found]
{"_index":"hotel","_id":"395702","_version":1,"result":"not_found","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":220,"_primary_term":6}];
at org.elasticsearch.client.Re
...
环境
springboot版本2.6.11
elasticsearch版本8.1.1
原因分析
springboot版本略低,不兼容elasticsearch版本
解决方案
- 提高springboot版本
- 自定义请求头
我是采用方法二处理的:
原来
@BeforeEach
void init() {
client = new RestHighLevelClient(RestClient.builder(HttpHost.create("http://localhost:9200")));
}
现在
@BeforeEach
void init() {
client = new RestHighLevelClient(RestClient.builder(HttpHost.create("http://localhost:9200"))
.setDefaultHeaders(new Header[]{new BasicHeader(HttpHeaders.ACCEPT,"application/vnd.elasticsearch+json;compatible-with=7")}
));
}
参考资料