Elasticsearch Java High Level REST Client(入门)

Java High Level REST Client 入门

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

兼容性

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

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

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

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

Javadoc

能够在https://artifacts.elastic.co/javadoc/org/elasticsearch/client/elasticsearch-rest-high-level-client/6.4.2/index.html找到REST高级别客户端的javadoc。测试

Maven仓库

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

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

若是你正在寻找SNAPSHOT版本,能够经过https://snapshots.elastic.co/maven/获取Elastic Maven Snapshot仓库。url

Maven配置

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

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>6.4.2</version>
</dependency>

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:

<repository>
    <id>elastic-lucene-snapshots</id>
    <name>Elastic Lucene Snapshots</name>
    <url>http://s3.amazonaws.com/download.elasticsearch.org/lucenesnapshots/00142c9</url>
    <releases><enabled>true</enabled></releases>
    <snapshots><enabled>false</enabled></snapshots>
</repository>

对于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来控制哪一个节点接收请求,有关自定义选项的更多示例,请参阅低级别客户端文档。


上一篇:Elasticsearch Java REST Client(嗅探器)

下一篇:Index API

相关文章
相关标签/搜索