封装一个 elasticsearch-spring-boot-starter以供复用!
概 述
Elasticsearch 在企业里落地的场景越来越多了,但是大家在项目里使用 Elasticsearch的姿势也是千奇百怪,这次正好自己需要使用,所以干脆就封装一个 elasticsearch-spring-boot-starter以供复用好了。如果不知道 spring-boot-starter该如何制作,可以参考文章《如何自制一个Spring Boot Starter并推送到远端公服》,下面就来简述一下自制的 elasticsearch-spring-boot-starter该如何使用。
依赖引入
1 | <dependency> |
配置文件
如果你还没有一个属于自己的 Elasticsearch集群,可以参考文章 《CentOS7 上搭建多节点 Elasticsearch集群》来一步步搭建之,本文实验所用的集群即来源于此。
1 | elasticsearch: |
各个字段解释如下:
host
:Elasticsearch 节点地址httpPort
: Elasticsearch REST端口tcpPort
:Elasticsearch TCP端口clusterName
:集群名docFields
:文档字段,以英文逗号间隔,比如我这里的业务场景是文档包含标题(title)
和内容(filecontent)
字段auth
:是否需要权限认证
由于我这里安装的实验集群并无 x-pack
权限认证的加持,因此无需权限认证,实际使用的集群或者阿里云上的 Elasticsearch集群均有完善的 x-pack
权限认证,此时可以加上用户名/密码的配置:
1 | elasticsearch: |
用法例析
- 首先注入相关资源
1 | @Autowired |
这些都是在 elasticsearch-spring-boot-starter中定义的
- 创建索引
1 | public String createIndex() throws IOException { |
- 删除索引
1 | public String deleteIndex() { |
- 判断索引是否存在
1 | if ( existIndex(indexName) ) { |
- 插入单个文档
1 | public String insertSingleDoc( ) { |
- 批量插入文档
1 | public String insertDocBatch() { |
- 搜索文档
1 | public List<Map<String,Object>> searchDoc() { |
- 删除文档
1 | public String deleteDoc() { |
- 批量删除文档
1 | public String deleteDocBatch() { |
- 更新文档
1 | public String updateDoc( @RequestBody SingleDoc singleDoc ) { |
后 记
由于能力有限,若有错误或者不当之处,还请大家批评指正,一起学习交流!
- My Personal Blog:CodeSheep 程序羊