五、Spring Boot整合ElasticSearch测试
- 引入spring-boot-starter-data-elasticsearch
- 安装Spring Data对应版本的ElasticSearch
- application.yml配置
- Spring Boot自动配置的
- 测试ElasticSearch
六、创建IDEA项目
七、ElasticSearch的自动配置过程
* SpringBoot默认支持两种技术来和ES交互 * 1、Jest【需导入jest的工具包io.searchbox.client.JestClient才能使用】 * 使用JestClient操作es * 2、SpringData ElasticSearch【默认生效,ES版本有可能不合适】 * 版本适配说明:https://github.com/spring-projects/spring-data-elasticsearch * 参考:https://mp.csdn.net/editor/html/110729158 * 如果版本不适配,有2种解决方法: * ①、安装对应的SpringBoot版本 * ②、安装对应的ES版本 --- 一般选择这个,这里需要2.4.6版本 * * 1) 需在application文件中配置节点信息clusterNodes、clusterName * 2) 两种用法:ElasticsearchTemplate操作es * 3) 两种用法:编写一个ElasticsearchRepository的子接口来操作es(类似JPA) * 两种用法:https://github.com/spring-projects/spring-data-elasticsearch
7.1 使用Jest操作es
1、去maven官网,导入依赖
2、配置文件
3、启动主程序类,成功
4、测试 索引(保存)一个文档
@JestId
5、测试 搜索一个文档
7.2 继承ElasticsearchRepository接口操作es
1、导入依赖
2、spring date elasticsearch整合elasticsearch时,需要进行版本适配
版本适配说明:https://github.com/spring-projects/spring-data-elasticsearch
* 如果版本不适配,有2种解决方法:
* ①、安装对应的SpringBoot版本
* ②、安装对应的ES版本 --- 一般选择这个,这里需要2.4.6版本
3、如果是这样的报错,就说明版本不适配,参考2中步骤
这样看版本:elasticsearch是5.6.12版本(目前最新版本,因为docker时pull的lastest版本)。SpringBoot 2.1.11需要的是对应的es版本(参考官网的版本适配图)
4、重新下载新版本,并测试
docker pull elasticsearch:2.4.6-alpine
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9201:9200 -p 9301:9300 --name ES02 26d1ac62cc29
5、测试1
6、测试自定义方法
参照 https://docs.spring.io/spring-data/elasticsearch/docs/3.0.6.RELEASE/reference/html/
7、ElasticsearchRepository接口的使用
参照 https://docs.spring.io/spring-data/elasticsearch/docs/3.0.6.RELEASE/reference/html/