本节课是个赠送课时,因为 ES 接口更新太快,有的接口很快就被过期了,另外一些读者也不想在熟悉 Java-ES 接口上投入太多时间。那么这节课时就针对如果接口过期或者不可用怎么办?想了解一个公共技术来与 ES 交互?
ES 交互
因为 ES 是基于 HTTP 的,所以我们可以通过 HTTP 框架直接与 ES 交互,获取数据。这样无论就可以解决接口过期,或者用公共技术不用学习 Java-ES 接口来操作 ES。这里推荐 OkHttpClient 框架,这个框架是开源的而且听说效率一流。
在 Maven 中引入包:
<!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.2.2</version>
</dependency>
这里我创建了一个 HttpHelper 工具类,用来封装对 ES 的 post 请求。
需要注意的有以下几点:
- OkHttpClient client 一定要放在方法外,这样可以节约资源,放置重复创建连接池
- 一定要配置超时时间,这里我配置成了 1 分钟
public class HttpHelper {
private static OkHttpClient client = new OkHttpClient