前言
spring里有两个比较好用的操作ES的工具,一个是spring data elasticsearch,一个是Jest,前者连接的是es的9300端口(TCP连接,把自己伪装成ES的一个节点);后者连接的是es的9200端口(Http Restful)。
1、整合Jest
step1
搭建SpringBoot项目,引入Jest依赖,和spring data elasticsearch依赖,引入两个依赖是因为Jest使用过程中会用到spring data elasticsearch的一些类,如QueryBuilder。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>io.searchbox</groupId>
<artifactId>jest</artifactId>
<version>5.3.3</version>
</dependency>
step2
application.yml里面配置ES的连接和端口。如果有认证需要加上用户名密码等,其他配置可以参考官方文档。
spring:
elasticsearch:
jest:
uris: http://166.66.66.266:9200
step3
生产环境用到的查询语句一般是复杂的DSL,DSL一般有以下几种查询类型(过滤器)。ES中的每种查询都有对应的QueryBuilder提供。
- term/terms:精确查找。下面用到了terms查询,查找loglevel是ERROR或者FATAL的文档。记住精确查找用termQuery/termsQuery构建就行了,方法ide会给提示
QueryBuilder