翻译的原文: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. poj1679 The Unique MST(判定次小生成树)

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 23180   Accepted: 8235 D ...

  2. JSF教程(11)——生命周期之Invoke Application Phase

    在这个阶段JSF实现将处理不论什么应用界别的事件,比如表单的提交或者链接点击后跳转到还有一个页面. 这时假设应用须要重定向不同 的web应用字眼或者产生一个资源其并不喊不论什么的JSF组件,那么就调用 ...

  3. c++读取lua配置基础类

    一.内容介绍 把lua作为配置文件,里面的参数值的获取,在他人基础上做了修改,并且补充了一维数组的处理方式. 若有不足之处请多多指教. 对于二维数组,没有成功.希望大家继续补充和修改,非常感谢! 二. ...

  4. Cmake 实现debug和release lib依赖项处理

    一.说明 最近用cmake开发东西,编译vs时候,发现debug和release版本的lib库的依赖项问题,故此小结一下.若有不对之处,还请看官多多指教. 使用的工程有自己编写的工程,也有借用第三方库 ...

  5. jQuery插件AjaxFileUpload实现ajax文件上传时老是运行error方法 问题原因

    今天在用jQuery插件AjaxFileUpload实现ajax文件上传时,遇到一个问题,如图: 老是运行error.无法运行succes方法,追踪ajaxfileupload.js源代码发现: wa ...

  6. 算法求解中的变量、数组与数据结构(STL 中的容器)

    本质上算法都是对数据的操作,没有数据,没有存储数据的容器和组织方式,算法就是无源之水无本之木,就是巧妇也难为无米之炊.算法是演员,变量.数组.容器等就是舞台, 然后整个算法的处理流程,都是针对这些数据 ...

  7. go 保留小数若干位数

    感谢 https://blog.csdn.net/sjy8207380/article/details/79013827 解决的方法 · 利用取近似值的方法解决这个问题. (1)利用fmt.Sprin ...

  8. WPF应用程序启动的问题(自定义Main函数启动)

    问题引入: 一般WPF创建之后可以直接运行并不需要编写Main函数指定入口,但是在开发的过程中会遇到一些情况需要自定义Main让WPF从指定的Main函数中进行启动,这样可能会更好控制一点.但是我们再 ...

  9. UICollectionView使用方法补充(照片轮播墙)

    一 整体功能图和实现思路 1 完整的功能图: 2 实现功思路: 1> 流水布局(实现UICollectionView必需要的条件) 2> 自己定义cell(实现UICollectionVi ...

  10. [Angular2 Form] Reactive Form, show error message for one field

    <form [formGroup]="reactiveForm" novalidate autocomplete="off"> <div cl ...