也参考了一些博主写的整合的内容,发现他们使用的Elasticsearch版本都比较旧,实际我在整合的过程中,SpringBoot2.2做了很好的适配,因为前面我使用的Elasticsearch版本为6.8.9,也能直接使用,但在这里我还是将对应的版本关系贴出来供参考。
Spring Data Elasticsearch | Elasticsearch |
---|---|
3.1.x | 6.2.2 |
3.0.x | 5.5.0 |
2.1.x | 2.4.0 |
2.0.x | 2.2.0 |
1.3.x | 1.5.2 |
由于Elasticsearch的版本更新较快,我们可以根据上面的版本关系图寻找适合的Spring Data Elasticsearch的依赖版本进行配置。
引入相关依赖
在前面的Elasticsearch的简介中已经说过了怎么使用docker部署,这边就不再重新介绍。
1 | <!-- SpringBoot默认使用SpringData 进行Elasticsearch操作 --> |
SpringBoot2.0中支持两种操作Elasticsearch的方式,一种是Rest Client,一种是Spring Data,在入门这块我使用Spring Data进行演示,因为操作比较简单易懂。在properties文件中添加Elasticsearch相关连接信息。
1 | # 配置elasticsearch连接信息 |
此处的集群名称使用我们访问服务器的9200端口获得,注意此处的集群节点填的是9300端口,因为我们使用的是Java进行连接。
编写实体类以及ElasticsearchRepository接口的子接口
使用Spring Data操作Elasticsearch又有两种方法,一是编写ElasticsearchRepository的子接口,二是直接使用ElasticsearchTemplate进行操作,这边介绍第一种方法,因为第一种方法较为灵活。
1 | package com.ross.elasticsearch.entity; |
1 | package com.ross.elasticsearch.repository; |
往Elasticsearch中索引(保存)一个对象进行测试。
1 |
|
请求URI进行结果查询,浏览器中输入http://服务器地址:9200/ross/book/_search
1 | { |
编写ElasticsearchRepository的子接口灵活在可以自定义接口方法,并且无需编写方法的实现,它便能够自动进行关键字匹配。例如上面编写的findAllByBookName()方法符合And关键词匹配,我们进行方法的测试。
1 |
|
1 | 三国演义 |
具体的自定义接口方法编写规则可以去Spring官方文档进行查看学习,地址https://docs.spring.io/spring-data/elasticsearch/docs/4.0.0.RELEASE/reference/html/#elasticsearch.repositories
总结
由于本人也刚接触ES不久,也没有相关实战项目的经历,还在学习当中,不过总结总归是好的,为以后造轮子打基础😁。