ES连接方式:
elasticsearch作为一种服务,可以通过多种方式进行连接查询,例如通过postman甚至浏览器直接使用查询语句查询,及通过kibana可视化界面进行数据查询管理,对于java来说也可以通过es的内置的elastisearchclient进行连接请求查询,本篇主要详解一下通过java的查询方式。
正常ESclient连接查询(ES服务器配置license或SSL):
//以下为最基础的esclient的配置,java引入ES依赖后通过RestClient指定
//好对应ESip地址或者hostname即下面的“serverurl”以及对应ES服务端的APIkey
//直接创建
RestClient restClient = RestClient
.builder(HttpHost.create(serverUrl))
.setDefaultHeaders(new Header[]{
new BasicHeader("Authorization", "ApiKey " + apiKey)
})
.build();
//随后通过ElasticsearchTransport 指定一个JacksonJsonpMapper创建好
//客户端以及服务端的一个transport通信端口
ElasticsearchTransport transport = new RestClientTransport(
restClient, new JacksonJsonpMapper());
//最终完成创建
ElasticsearchClient esClient = new ElasticsearchClient(transport);
//官网种还提供了一种high level的ESclient的创建方式
//与上面基础版本的区别就是RestClient的创建方式不一致,创建代码参考
//RestHighLevelClient hlrc = new RestHighLevelClientBuilder(httpClient)
// .setApiCompatibilityMode(true)
// .build();
//核心区别是highlevel client是在正常client级别之上进行工作主要它的主要目标是公开特定于API的方
//法,这些方法接受请求对象作为参数并返回响应对象,以便由客户端自己处理请求编组和响应取消编组。
//详情参考https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/8.9/migrate/-hlrc.html
ES的多种查询方式
1.Mat