- 由于工作需要,亲自试验了,elasticsearch 5.6.80, elasticsearch 6.4.2, elasticsearch 7.5.0, 三个版本的es,发现其中的差别还是很大的,比如 es5.6.80 还支持 一个index下建立多个type,而到6.4.2 以及7.5.0以后就不支持了,添加多type的时候会报错。
- 计划使用 springboot+spring-data-elasticsearch操作es,遍引入的以下的maven坐标:
<!---开箱即用,默认使用的和当前使用的springboot的一一致的spring-data-elasticsearch--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>
这其中有个坑就是,如果你想升级单独升级pring-boot-starter-data-elasticsearch 的版本而不升级springboot的版本,启动的时候就会报错,建议还是按照官方的版本对应关系进行选择,避免不必要的麻烦:
官方参考链接;
https://docs.spring.io/spring-data/elasticsearch/docs/3.2.4.RELEASE/reference/html/#reference
3. spring -data-elasticsearch 不同的版本之间的api也有所不同,建议不要随意升级
4. 把springboot 从2.0.3 升级到2.2.0版本 会出现 循环依赖注入问题,比如 在a类中依赖了b类,然后在b类又依赖了a类,导致启动报错,原本在2.0.3版本的时候并没有出现问题,升级以后才出现这个问题,怀疑是springboot 2.2.0 对循环依赖做了一个不同的处理(还不是很确定),解决这个问题也很简单如下图在自注入注解的地方加上@Lazy注解即可:
public class A{ @Autowired @Lazy private B b; ... } public class B{ @Autowired @Lazy private A a; ... }
ElasticSearch实战 之 es的安装和使用 https://blog.csdn.net/weter_drop/article/details/103990959