ElasticsearchClient入门指南

ops/2024/10/18 6:02:16/

在本教程中,我们将探讨如何使用Elasticsearch的官方Java客户端 - ElasticsearchClient。这个强大的工具允许您的Java应用程序与Elasticsearch集群进行交互,执行各种操作,如索引文档、执行搜索查询等。

前提条件

在开始之前,确保您的项目中已经包含了必要的依赖。您可以通过Maven添加以下依赖:

<dependency><groupId>co.elastic.clients</groupId><artifactId>elasticsearch-java</artifactId><version>8.10.0</version>
</dependency>
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.12.3</version>
</dependency>

创建ElasticsearchClient

首先,我们需要创建一个ElasticsearchClient实例。这涉及几个步骤:

  1. 创建一个RestClient实例
  2. 使用RestClient创建一个ElasticsearchTransport实例
  3. 使用transport创建ElasticsearchClient实例

以下是代码示例:

import co.elastic.clients.elasticsearch.ElasticsearchClient;
import co.elastic.clients.json.jackson.JacksonJsonpMapper;
import co.elastic.clients.transport.ElasticsearchTransport;
import co.elastic.clients.transport.rest_client.RestClientTransport;
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;// 创建低级客户端
RestClient restClient = RestClient.builder(new HttpHost("localhost", 9200)).build();// 创建传输层
ElasticsearchTransport transport = new RestClientTransport(restClient, new JacksonJsonpMapper());// 创建API客户端
ElasticsearchClient client = new ElasticsearchClient(transport);

执行搜索查询

现在我们有了ElasticsearchClient实例,让我们执行一个简单的搜索查询:

import co.elastic.clients.elasticsearch._types.query_dsl.MatchQuery;
import co.elastic.clients.elasticsearch.core.SearchResponse;try {// 执行搜索请求SearchResponse<Object> response = client.search(s -> s.index("my-index").query(q -> q.match(new MatchQuery.Builder().field("title").query("elasticsearch").build())),Object.class);// 处理响应long totalHits = response.hits().total().value();System.out.println("Total hits: " + totalHits);// 遍历搜索结果response.hits().hits().forEach(hit -> {System.out.println("Found document: " + hit.source());});} catch (IOException e) {e.printStackTrace();
}

这个例子展示了如何:

  1. 构建一个match查询,搜索标题字段中包含"elasticsearch"的文档
  2. 执行搜索请求
  3. 获取总命中数
  4. 遍历并打印搜索结果

关闭客户端

最后,当您完成所有操作后,别忘了关闭客户端:

try {restClient.close();
} catch (IOException e) {e.printStackTrace();
}

结论

本教程介绍了ElasticsearchClient的基本用法。我们学习了如何创建客户端、执行搜索查询和处理结果。ElasticsearchClient提供了丰富的API,允许您执行各种复杂的操作。随着您对Elasticsearch的深入了解,您将能够利用这个客户端执行更高级的查询和操作。

记住,这只是一个起点。Elasticsearch提供了大量的功能,包括聚合、地理空间查询、文档更新等。继续探索官方文档,以充分利用Elasticsearch的强大功能!


http://www.ppmy.cn/ops/124304.html

相关文章

Windows 部署 ollama

1.安装 官方地址&#xff1a;https://ollama.com/ 1.1 下载ollama 1.2 安装 1.3 运行 Ollama 1.4 测试ollama运行状态 http://localhost:11434 curl http://localhost:11434/api/generate -d "{ \"model\": \"qwen2:0.5b\", \"prompt\":…

极狐GitLab 发布安全补丁版本 17.4.1、17.3.4、17.2.8

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 官网极狐…

鸿蒙面试题库收集(三):网络请求线程相关

二. 网络请求&线程相关 1. 数据通信 *** eventHub : 普通事件发布&#xff0c;订阅 eventHub&#xff1a;提供了事件中心&#xff0c;提供订阅&#xff0c;取消订阅&#xff0c;触发事件的能力&#xff0c;同hap内通信&#xff0c;不跨线程eventHub.emit(数据标记&#xff…

tpcms-master.zip

网盘&#xff1a;https://pan.notestore.cn/s.html?id34https://pan.notestore.cn/s.html?id34

10.11 Qt

数据库查询案例 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlRecord> #include <QSqlError> #include <QInputDialog>QT_BEGIN_NAMESPACE namespace Ui { …

git的基本使用

版本&#xff1a;软件版本&#xff0c;文件版本&#xff0c;保存重要的历史记录&#xff0c;恢复数据 版本控制软件的基础功能&#xff1a;保存和管理文件&#xff0c;提供客户端工具访问&#xff0c;提供不同版本文件比对功能 一、git基础概念 1.git的三个区域 工作区&…

XSS全详解

前言 我们下面进行下一个漏洞——XSS的学习&#xff0c;XSS是常见漏洞之一&#xff0c;算是Web安全必学漏洞。我们之前一直都以CTFHub为主线进行学习&#xff0c;但由于我们对常见漏洞进行强化学习的目的&#xff0c;CTFHub的题目并不能满足我们。为探讨清楚XSS的诸多细节&…

Leetcode 3312. Sorted GCD Pair Queries

Leetcode 3312. Sorted GCD Pair Queries 1. 解题思路2. 代码实现 题目链接&#xff1a;3312. Sorted GCD Pair Queries 1. 解题思路 这一题的话坦率来说没有搞定&#xff0c;后来是找的大佬的代码抄了一下…… 整体来说这道题思路上还是比较暴力的&#xff0c;还是一个二重…