版本
spingboot 2.2.2.RELEASE
引入 spring-boot-starter-data-elasticsearch 可以不指定版本,工程会自动拉取springboot对应的版本依赖
elasticsearch server 6.8.4
如果指定使用版本,要注意兼容性问题,防止不兼容导致出现千奇百怪的错误
spring data 官方版本对照表,如果是新项目建议选用spring推荐的几个版本,太老的不值得接入和维护,成本太高,
官方版本地址:https://spring.io/projects/spring-data-elasticsearch#learn
如果你的版本较新,请查看官方地址:https://docs.spring.io/spring-data/elasticsearch/docs/3.2.7.RELEASE/reference/html/#new-features.3-2-0
maven依赖
放到你项目的model层,因为springdata需要进行es实体类注解
<!--elasticsearch data-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
客户端配置
这里我们也采用官方推荐的REST Client方式,可能有些人还在使用配置文件的方式配置es连接信息,不过这里我们不推荐,
该方式已经被官方废弃了,请看:
还有一些老项目在使用Transport Client,我这里也不推荐使用,至于原因,官方文档说的很清楚:
我们着重来看下官方墙裂推荐REST Client配置方式
方法1 :一般来说,不需要验证的这种方式就可以了,自己可以将host和port定义到配置中
方法2:如果需要验证,那么就需要在HttpHeader添加用户名和密码,一般公司做了ES中间件或者做了权限的话通常都要验证
只需要在方法1中添加方法2框出来的红色配置即可,没有验证的es服务直接使用方法1。
我的使用demo,我将配置信息放入配置文件的自定义配置中,便于不同环境的切换,此为我的本地配置:
配置类注意需要添加启用注解:
@EnableElasticsearchRepositories 进行扫包,扫到实体类映射层,原理和jpa、mybatis一样
@Configuration
@EnableElasticsearchRepositories(basePackages = "com.tino.repository")
p