我使用的是Elasticsearch7.2.0,由于官网上推荐使用elasticsearch-rest-high-level-client端集成在springboot所以尝试爬坑。
首先直接引入官网的配置文件
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.2.0</version>
</dependency>
然后在运行时报错:
...
...
Caused by: java.lang.ClassNotFoundException: org.elasticsearch.common.xcontent.DeprecationHandler
...
...
百度了一下说jar里的Elasticsearch版本有错,要移除了再重新引入,所以把配置文件改成下面的样子
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.2.0</version>
<exclusions>
<exclusion>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 正确版本 -->
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.2.0</version>
</dependency>
然后再次启动,Elasticsearch正常运行,但是发现spring的rest服务运行不正常,配置的Filter没有正常运行,且不报错。网上找了很久也没有找到有类似错误的问题,后来反复查看官网,他说elasticsearch-rest-high-level-client是基于elasticsearch-rest-client的,我就猜这个基于会不会是依赖的意思呢?
于是把配置改成了这样:
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.2.0</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
<version>7.2.0</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.2.0</version>
</dependency>
然后再次启动,Elasticsearch正常运行,REST服务也正常,我的老天鹅,终于可以了。
后来我找到了这篇文章Elasticsearch High Level REST Client,具体配置可以参考下
来源:oschina
链接:https://my.oschina.net/u/3362856/blog/3109764