ES查询(Java)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的 Elasticsearch 查询 Java 代码示例: ```java import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.builder.SearchSourceBuilder; import java.io.IOException; import java.util.concurrent.TimeUnit; public class ElasticsearchQueryExample { public static void main(String[] args) throws IOException { // 创建 Elasticsearch 客户端 RestHighLevelClient client = new RestHighLevelClient( RestClient.builder(new HttpHost("localhost", 9200, "http"))); // 创建搜索请求 SearchRequest searchRequest = new SearchRequest("my-index"); // 创建搜索源构建器 SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(QueryBuilders.matchQuery("title", "Elasticsearch")); searchSourceBuilder.from(0); searchSourceBuilder.size(10); searchSourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS)); // 将搜索源构建器添加到搜索请求中 searchRequest.source(searchSourceBuilder); // 执行搜索请求 SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); // 处理搜索结果 for (SearchHit hit : searchResponse.getHits().getHits()) { System.out.println(hit.getSourceAsString()); } // 关闭 Elasticsearch 客户端 client.close(); } } ``` 上面的代码通过 Elasticsearch Java 客户端执行了一个基本的搜索请求,其中: - `RestHighLevelClient` 是 Elasticsearch Java 客户端的一个高级别别名,用于执行搜索请求。 - `SearchRequest` 是一个 Elasticsearch 搜索请求的 Java 类,用于设置搜索请求的索引名称、搜索条件等信息。 - `SearchSourceBuilder` 是一个搜索源构建器,用于构建 Elasticsearch 搜索请求的搜索条件。 - `QueryBuilders.matchQuery` 方法创建一个匹配查询条件,查询 `title` 字段中包含 `Elasticsearch` 字符串的文档。 - `searchSourceBuilder.from` 和 `searchSourceBuilder.size` 方法用于设置从搜索结果的第几个文档开始返回以及返回的文档数量。 - `searchSourceBuilder.timeout` 方法用于设置搜索请求的超时时间。 - `SearchResponse` 是 Elasticsearch 搜索请求的响应结果,包含搜索结果、搜索总数等信息。 - `SearchHit` 是 Elasticsearch 搜索请求的命中结果,包含文档 ID、文档得分、文档内容等信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值