elasticsearch high level rest client 开发注意事项

本文介绍使用Elasticsearch高阶REST客户端(highlevelrestclient)时应注意的事项:保持JSON版本与Elasticsearch版本一致的重要性;高版本客户端对于创建索引的支持限制;及创建IndexRequest时指定JSON格式的要求。

high level rest client开发需要注意如下几点:

  • 引入的json版本必须与引入es的版本是一致的,如es 6.6.2版本引入的json是2.8.11,则需要引入2.8.11才可以!
        <dependency>       
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.8.11</version>
            <!--
            <version>3.0.0-SNAPSHOT</version>
            -->
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.11</version>
            <!--
            <version>3.0.0-SNAPSHOT</version>
            -->
        </dependency>
  • high level版本兼容低版本的rest方式。如下面例子所示,高版本的client不支持通过模板直接创建一个index。
RestClient restClient = client.getLowLevelClient();
Request request = new Request("PUT", "/" + indexName);
Response response = restClient.performRequest(request);
  • 创建IndexRequest时,要指定json格式
new IndexRequest(indexName, typeName).source(source, XContentType.JSON)

 

Elasticsearch 提供了多种客户端以支持不同场景下的使用需求。Java API Client High Level REST Client 是其中较为常见的两种,它们在设计目标、功能实现、维护状态等方面存在显著差异。 Java API Client 是基于传输协议(如 TCP)构建的客户端,它直接与 Elasticsearch 节点通信,提供了一种高效的方式来进行集群管理数据操作。这种方式的优点在于性能较高,因为它绕过了 HTTP 层,直接使用了更轻量级的二进制协议。然而,随着技术的发展,这种客户端逐渐显现出一些局限性,比如难以跨语言支持,以及在某些网络环境中可能遇到的问题。 High Level REST Client 则是基于 HTTP 协议构建的客户端,旨在提供更好的兼容性灵活性。它不仅支持所有 Elasticsearch 的功能,而且由于其基于 HTTP,因此更容易在不同的网络环境中部署使用。此外,High Level REST Client 的设计更加现代化,支持异步请求处理,这使得它能够更好地适应现代应用的需求。官方已经明确表示,High Level REST Client 将成为未来的主流选择,并计划逐步淘汰 Java API Client[^1]。 两者之间的主要区别还包括: - **维护支持**:High Level REST Client 得到了更积极的维护支持,而 Java API Client 已经不再推荐用于新项目。 - **功能覆盖**:High Level REST Client 提供了对 Elasticsearch 所有功能的支持,包括最新的特性,而 Java API Client 可能缺少对某些新特性的支持。 - **易用性**:High Level REST Client 在设计上更加注重用户体验,提供了更为简洁直观的 API 接口。 - **社区活跃度**:High Level REST Client 拥有更高的社区活跃度,这意味着用户可以更容易地找到帮助支持。 综上所述,尽管 Java API Client 在特定场景下仍然有用武之地,但对于大多数新项目而言,High Level REST Client 无疑是更好的选择。 ```java // 示例:使用 High Level REST Client 创建索引 import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.QueryBuilder; public class CreateIndexExample { public static void main(String[] args) { // 初始化 High Level REST Client // ... // 创建索引请求 // ... // 执行请求 // ... } } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值