翻译的原文:http://www.elasticsearch.org/guide/en/elasticsearch/client/java-api/current/client.html#node-client

翻译ElasticSearch的javaAPI之Client

本节描写叙述了elasticsearch提供的Java API,全部elasticsearch操作使用client对象运行。

全部的操作在本质上是全然asynchronous(接受一个listener,或返回一个future)。

此外,在client的操作,能够批量处理。

注意: all the APIs are exposed through the Java API

maven repository

比如,你能够在pom.xml文件里增加以下这几行

<dependency>

    <groupId>org.elasticsearch</groupId>

    <artifactId>elasticsearch</artifactId>

    <version>${es.version}</version>

</dependency>

您能够以多种方式使用Java client:

对一个现有的cluster中index,运行标准的get,delete和search操作

在一个执行群集执行管理任务

执行嵌入在您自己的应用程序的elasticsearch,或者当你想执行单元和集成測试,启动节点

获取一个elasticsearch client是easy的。以下最经常使用的方式:

     1.创建一个节点( acts as a node within a cluster)

     2.从节点请求client(from your embedded
Node)

还有一种方式是通过创建一个TransportClient连接到群集。

Important:

请注意,我们建议使用同一版本号的client和集群。由于你可能遇到一些不兼容的问题,当混用不同版本号。

Node client:

实例化一个基于节点的client是最简单的方法,能够让客户对elasticsearch进行运行操作。

   importstatic org.elasticsearch.node.NodeBuilder.*;

// on startup

Node node = nodeBuilder().node();
Client client = node.client(); // on shutdown node.close();

当你启动一个节点,它增加了一个elasticsearch集群。你能够通过简单的设置cluster.name设置不同的集群,或显式地使用clusterName method方法。

你能够定义cluster.name在/src/main/resources / elasticsearch.yml文件在您的项目。仅仅要elasticsearch.yml是在类路径中存在,它将被用来当您启动节点。

cluster.name: yourclustername

 Or in Java:

Node node = nodeBuilder().clusterName("yourclustername").node();
Client client = node.client();

使用client的优点是操作是自己主动路由到节点的操作须要运行,不运行“double hop”。比如,index操作将在shard上自己主动运行的。

当你启动一个节点,最重要的是决定是否应该保存数据或不。换句话说,该indices和shards被分配给它的。非常多时候我们会须要client不过client,没有shards分配给他们。这是简单的设置是node.data设置为false或node.client的配置true(the NodeBuilder respectivehelper methods on it):

importstatic org.elasticsearch.node.NodeBuilder.*;

// on startup

Node node = nodeBuilder().client(true).node();
Client client = node.client(); // on shutdown node.close();

还有一个常见方法启动节点和使用client单元/集成測试。在这样的情况下,我们要開始一个“local”节点(与“local”的discovery and transpor)。再次,这仅仅是一个简单的设置启动节点时。注意,“local”在这里是指当地的JVM(嗯,实际上的类装载器),这意味着两个本地server开在同样的JVM,组成一个集群。

importstatic org.elasticsearch.node.NodeBuilder.*;

// on startup

Node node = nodeBuilder().local(true).node();
Client client = node.client(); // on shutdown node.close();

transport  client

TransportClient 使用 transport module远程连接elasticsearch集群,它不增加群集,但仅仅会有一个或多个初始传输地址和与集群交流对每一个动作robin fashion(尽管大多数行动将可能是“two hop”操作)。

// on startup

Client client = new TransportClient()
        .addTransportAddress(new InetSocketTransportAddress("host1", 9300))
        .addTransportAddress(new InetSocketTransportAddress("host2", 9300)); // on shutdown client.close();

请注意,你必须设置群集名称,假设你使用一个不同的“elasticsearch”:

Settings settings =ImmutableSettings.settingsBuilder()
        .put("cluster.name", "myClusterName").build();
Client client =    new TransportClient(settings);
//Add transport addresses and do something with the client...

或者使用elasticsearch.yml

客户能够sniff集群的歇息,并加入到列表中的机器使用。在这样的情况下,请注意,使用的IP地址将是其它节点開始的("publish" address)。为了使用它,把client.transport.sniff设置true:

Settings settings =ImmutableSettings.settingsBuilder()
        .put("client.transport.sniff", true).build();
TransportClient client = new TransportClient(settings);

Other transport client levelsettings include:

client.transport.ignore_cluster_name

Set to true to ignore cluster name validation of connected nodes. (since 0.19.4)

client.transport.ping_timeout

The time to wait for a ping response from a node. Defaults to 5s.

client.transport.nodes_sampler_interval

How often to sample / ping the nodes listed and connected. Defaults to 5s.

原文:http://www.elasticsearch.org/guide/en/elasticsearch/client/java-api/current/client.html#node-client

翻译欠佳,希望不会对大家造成误导

ElasticSearch的javaAPI之Client的更多相关文章

  1. Elasticsearch的javaAPI之percolator

    Elasticsearch的javaAPI之percolator percolator同意一个在index中注冊queries,然后发送包括doc的请求,返回得到在index中注冊过的而且匹配doc的 ...

  2. elasticsearch的javaAPI之query

    elasticsearch的javaAPI之query API the Search API同意运行一个搜索查询,返回一个与查询匹配的结果(hits). 它能够在跨一个或多个index上运行, 或者一 ...

  3. Elasticsearch的javaAPI之get,delete,bulk

    Elsasticsearch的javaAPI之get get API同意依据其id获得指定index中的基于json document.以下的样例得到一个JSON document(index为twi ...

  4. Elasticsearch High Level Rest Client 发起请求的过程分析

    本文讨论的是JAVA High Level Rest Client向ElasticSearch6.3.2发送请求(index操作.update.delete--)的一个详细过程的理解,主要涉及到Res ...

  5. Elasticsearch的javaAPI之query dsl-queries

    Elasticsearch的javaAPI之query dsl-queries 和rest query dsl一样,elasticsearch提供了一个完整的Java query dsl. 查询建造者 ...

  6. elasticsearch java 客户端之Client简介

    elasticsearch通过构造一个client对外提供了一套丰富的java调用接口.总体来说client分为两类cluster信息方面的client及数据(index)方面的client.这两个大 ...

  7. elasticsearch的javaAPI之index

    Index API 原文:http://www.elasticsearch.org/guide/en/elasticsearch/client/java-api/current/index_.html ...

  8. Elasticsearch【JAVA REST Client】客户端操作

    ES系统作为集群,环境搭建非常方便简单. 现在在我们的应用中,如何对这个集群进行操作呢? 我们利用ES系统,通常都是下面的架构: 在这里,客户端的请求通过LB进行负载均衡,因为操作任何一个ES的实例, ...

  9. Elasticsearch的JavaAPI

    获取客户端对象 public class App { private TransportClient client; //获取客户端对象 @Before public void getClinet() ...

随机推荐

  1. Maven学习总结(17)——深入理解maven灵活的构建

    一个优秀的构建系统必须足够灵活,应该能够让项目在不同的环境下都能成功构建.maven为了支持构建的灵活性,内置了三大特性,即:属性.profile和资源过滤. 1.maven属性 maven属性分6类 ...

  2. [D3] Select DOM Elements with D3 v4

    Before you can create dazzling data driven documents, you need to know how D3 accesses the DOM. This ...

  3. HDU2438 Turn the corner【三分法】【数学几何】

    Turn the corner Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  4. Surging -Demo部署

    原文:Surging -Demo部署 1.安装rabbitmq docker run -d --name rabbitmq --restart=unless-stopped --publish 567 ...

  5. stm32的adc时钟周期,ADC_SampleTime_1Cycles5是多长时间

  6. Genymotion加入模拟器时报“Unable to create virtual device,Server returned HTTP status code 0”

    今天也遇到这个问题,算是对这个文章的一点补充 打开图中这个文件 C:\Users\xxx\AppData\Local\Genymobile 搜索 [downloadFile] 找到这个一串URL ht ...

  7. Emmet超详细教程

    Emmet超详细教程 一.总结 一句话总结:用的时候照着用,能提高效率. 1.快捷键如何使用? 需要敲代码的时候把快捷键放到旁边即可.照着敲. 二.Emmet超详细教程 Emmet的前身是大名鼎鼎的Z ...

  8. Windows 程序启动性能优化(先载入EXE,后载入DLL,只取有限的代码载入内存,将CPU的IP指向程序的入口点)

    一.重定位链接时重定位:目标文件一般由多个节组成,编译器在编译每个目标文件时一般都是从0地址开始生成代码.当多个代码节合成一个代码段时,需要根据其在最终代码段中的位置做出调整.同时,链接器需要对已经解 ...

  9. IDEA使用从Eclipse过来的快捷键

    1.Eclipse中的ctrl+shift+o --------> Ctrl + Alt + O 2.Eclipse中快捷键是Ctrl+O ---------> MacOS 下是 cmd+ ...

  10. [NPM] Use a shorthand syntax for running multiple npm scripts with npm-run-all

    Running multiple scripts in series or in parallel can become very verbose. Using a tool such as npm- ...