博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Elasticsearch Java High Level REST Client(入门)
阅读量:6266 次
发布时间:2019-06-22

本文共 2510 字,大约阅读时间需要 8 分钟。

Java High Level REST Client 入门

本节描述从获取工件到在应用程序中使用它如何开始使用高级别REST客户端。

兼容性

Java High Level REST Client需要Java 1.8,并依赖于Elasticsearch核心项目,客户端版本与客户端开发的Elasticsearch版本相同,它接受与TransportClient相同的请求参数,并返回相同的响应对象,如果需要将应用程序从TransportClient迁移到新的REST客户端,请参阅迁移指南。

High Level Client保证能够与运行在相同主版本和大于或等于的次要版本上的任何Elasticsearch节点通信。当它与Elasticsearch节点通信时,它不需要在同一个次要版本中,因为它是向前兼容的,这意味着它支持与Elasticsearch的更高的版本进行通信,而不是与其开发的版本进行通信。

6.0客户端能够与任何6.x Elasticsearch节点通信,而6.1客户端肯定能够与6.1,6.2和任何更高版本的6.x版本通信,但是,如果6.1客户端支持6.0节点不知道的某些API的新请求主体字段,则在与先前的Elasticsearch节点版本通信时可能存在不兼容问题,例如在6.1和6.0之间。

建议在将Elasticsearch集群升级到新的主要版本时升级High Level Client,因为REST API重要更改可能会导致意外结果,具体取决于请求命中的节点,并且只有较新版本的客户端才支持新添加的API,一旦集群中的所有节点都升级到新的主版本,客户端应该总是在最后更新。

Javadoc

可以在找到REST高级别客户端的javadoc。

Maven仓库

高级别Java REST客户端托管在上,所需的最低Java版本为1.8

High Level REST Client与Elasticsearch具有相同的发布周期,将版本替换为想要的客户端版本。

如果你正在寻找SNAPSHOT版本,可以通过获取Elastic Maven Snapshot仓库。

Maven配置

以下是如何使用maven作为依赖关系管理器来配置依赖关系,将以下内容添加到pom.xml文件中

org.elasticsearch.client
elasticsearch-rest-high-level-client
6.4.2

Gradle配置

以下是使用gradle作为依赖关系管理器配置依赖关系的方法,将以下内容添加到build.gradle文件中:

dependencies {    compile 'org.elasticsearch.client:elasticsearch-rest-high-level-client:6.4.2'}

Lucene Snapshot仓库

任何主要版本(如测试版)的最新版本可能都是基于Lucene Snapshot版本构建的,在这种情况下,你将无法解析客户端的Lucene依赖关系。

例如,如果要使用依赖于Lucene 7.0.0-snapshot-00142c96.0.0-beta1版本,则必须定义以下存储库。

对于Maven:

elastic-lucene-snapshots
Elastic Lucene Snapshots
http://s3.amazonaws.com/download.elasticsearch.org/lucenesnapshots/00142c9
true
false

对于Gradle:

maven {    url 'http://s3.amazonaws.com/download.elasticsearch.org/lucenesnapshots/00142c9'}

依赖关系

High Level Java REST Client依赖于以下工件及其传递依赖性:

  • org.elasticsearch.client:elasticsearch-rest-client
  • org.elasticsearch:elasticsearch

初始化

RestHighLevelClient实例需要按如下方式构建REST低级别客户端构建器:

RestHighLevelClient client = new RestHighLevelClient(        RestClient.builder(                new HttpHost("localhost", 9200, "http"),                new HttpHost("localhost", 9201, "http")));

高级别客户端将在内部创建用于根据提供的构建器执行请求的低级别客户端,该低级别客户端维护一个连接池并启动一些线程,因此当你完好无损地关闭高级别客户端时,它将关闭内部低级别客户端以释放这些资源,这可以通过close来完成:

client.close();

在关于Java High Level Client的本文档的其余部分中,RestHighLevelClient实例将被引用为client

RequestOptions

RestHighLevelClient中的所有API都接受RequestOptions,你可以用来不会改变Elasticsearch执行请求的的方式自定义请求。例如,你可以在此处指定NodeSelector来控制哪个节点接收请求,有关自定义选项的更多示例,请参阅低级别客户端文档。


转载地址:http://uucpa.baihongyu.com/

你可能感兴趣的文章
案例分析:基于消息的分布式架构
查看>>
简单两步走 中兴V880获取权限方法
查看>>
外部 BLOB 存储体系结构
查看>>
导入文本文件时如何指定字段类型.sql
查看>>
C# 对象二进制序列化
查看>>
收藏的几个好的网站
查看>>
linux中shell变量$#,$@,$*,$?,$0,$1,$2的含义解释
查看>>
前端精选文摘:那些年我们一起清除过的浮动
查看>>
实现一种快速查找Richedit中可见区域内OLE对象的方法
查看>>
Java虚拟机工作原理详解 ( 二 )
查看>>
对象的序列化(Serialization)
查看>>
理解 Glance - 每天5分钟玩转 OpenStack(20)
查看>>
编译pure-ftpd时提示错误Your MySQL client libraries aren't properly installed
查看>>
Impala SQL
查看>>
STL源代码分析--萃取编程(traits)技术的实现
查看>>
Linux ALSA声卡驱动之一:ALSA架构简介【转】
查看>>
为了解决linux配置Nginx 只能关闭防火墙才能访问的问题
查看>>
CentOS7.2 创建本地YUM源和局域网YUM源
查看>>
ubuntu设置root密码及 Xftp连接linux(ubuntu)时提示ssh服务器拒绝了密码,请再试一次...
查看>>
[转]WCF RIA Services
查看>>