翻译的原文: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. change_names

    DC在储存网表时,有时会采用特殊的字符 比如表示总线BUS[7]-BUS[0] 会表示成\BUS[7]    \BUS[6]...... 在compile命令之后,write命令之前  加上:chan ...

  2. Hamming correct

    从数的最左边开始,并标记为1 将2的平方的位置留出来,做为校验位例如,8位2进制数10011010===>_ _ 1 _ 0 0 1 _ 1 0 1 0 位置1用来校验最右边的位位1的位置1 3 ...

  3. NPF

    NPF是一个协议驱动.从性能方面来看,这不是最好的选择,但是它合理地独立于MAC层并且有权使用原始通信 (raw traffic).NPF是Winpcap的核心部分,它是Winpcap完成困难工作的组 ...

  4. js循环函数中的匿名函数和闭包问题(匿名函数要用循环中变量的问题)

    js循环函数中的匿名函数和闭包问题(匿名函数要用循环中变量的问题) 一.总结 需要好好看下面代码 本质是因为匿名函数用到了循环中的变量,而普通方式访问的话,匿名函数的访问在循环之后,所以得到的i是循环 ...

  5. 11.2 Android显示系统框架_android源码禁用hwc和GPU

    2. 修改tiny4412_Android源码禁用hwc和gpu(厂家不会提供hwc和gpu的源代码,没有源代码就没法分析了,因此在这里禁用该功能并用软件库实现)最终源码: git clone htt ...

  6. PHP unlink() 函数(删除文件)

    PHP unlink() 函数(删除文件) 一.总结 unlink() 函数删除文件. 1.实例 $file = "test.txt"; if (!unlink($file)) 2 ...

  7. POJ 2785 4 Values whose Sum is 0 Hash!

    http://poj.org/problem?id=2785 题目大意: 给你四个数组a,b,c,d求满足a+b+c+d=0的个数 其中a,b,c,d可能高达2^28 思路: 嗯,没错,和上次的 HD ...

  8. 4、linux下应用创建线程

    1.linux创建线程之pthread_create 函数简介 pthread_create是UNIX环境创建线程函数 头文件 #include<pthread.h> 函数声明 int p ...

  9. HINTERNET应包含的头文件

    #include <afxinet.h> DWORD status=0;DWORD dwLen=sizeof(DWORD); if(!HttpQueryInfo(hRequest,HTTP ...

  10. VS2010制作dll

    一.为什么需要dll 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,如ATL.M ...