要连接到集群,首先要告诉集群:你是谁,你有什么特征。在es中体现为实例化节点,elasticsearch通过org.elasticsearch.node.NodeBuilder的build()或者node()方法实例化节点,build()创建节点而不启动,而node()方法等价于build().start(),即创建并启动。

实例化 NodeBuilder

实例化NodeBuilder有两种方式,一种是:

NodeBuilder nodeBuilder = new NodeBuilder();

另外一种是:

NodeBuilder.nodeBuilder()

设置node的属性

1.loadConfigSettings()

该配置表示是否加载配置文件。你可以在classpath下创建一个elasticsearch.yml文件,然后在其中设置一些属性(参见elasticsearch配置),再把loadConfigSettings的值设置为true即可,代码如下:

NodeBuilder nodeBuilder = NodeBuilder.nodeBuilder().loadConfigSettings(true);

loadConfigSetting的默认值为true

2.client()

该配置表示是否只作为客户端,即不存储索引数据,默认值为false,代码如下所示

NodeBuilder nodeBuilder = NodeBuilder.nodeBuilder().client(true);

3.data()

是否持有索引数据,默认值为true,代码如下所示

NodeBuilder nodeBuilder = NodeBuilder.nodeBuilder().data(true);
  • client(boolean)和data(boolean)会有一定的关联,当client的值为true时,data的值默认为false,且不能改为true,否则会报错
  • 当client的值为false时,data的值默认为true,而且改为false也不起作用

4.local()

是否为本地节点,本地节点是指在JVM级别中的同级,当多个节点使用同一个JVM时,这些节点可以组合成一个集群,而非同一个JVM下的节点则不处于集群中,默认值为false:

NodeBuilder nodeBuilder = NodeBuilder.nodeBuilder().local(true);

5.clusterName()

设置集群名,即该节点位于哪个集群下,默认值为elasticsearch

NodeBuilder nodeBuilder = NodeBuilder.nodeBuilder().clusterName("your name");

若多个节点设置了同一个clusterName,则说明这几个节点位于同一个集群下。

6.settings

通过org.elasticsearch.common.settings.Settings来配置这个节点

总结

我们可以使用以下方式来完成对node的属性配置:

  1. 使用配置文件方式,即在classpath下建立一个elasticsearch.yml文件,然后把分布式搜索Elasticsearch——配置里面提到的配置加入到此文件中,再保持loadConfigSettings为true即可;
  2. 使用Map方式,然后用NodeBuilder.nodeBuilder().settings(settings);
  3. 使用NodeBuilder自带了client、data、local、clusterName方法。通常我们可以用 Fluent API 来完成配置,例如:
        Node node = NodeBuilder.nodeBuilder().clusterName("elasticsearch").client(true).node();

不过NodeBuilder自带的方法有限,所以可能还需要配合以上提到的两种方式才能达到你的要求

elasticsearch中Node的创建的更多相关文章

  1. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作(二)

    CSSDesk body { background-color: #2574b0; } /*! zybuluo */ article,aside,details,figcaption,figure,f ...

  2. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作

    http://www.cnblogs.com/wgp13x/p/4934521.html 内容一样,样式好的版本. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据 ...

  3. Elasticsearch中的一些重要概念:cluster, node, index, document, shards及replica

    首先,我们来看下一下如下的这个图: Cluster Cluster也就是集群的意思.Elasticsearch集群由一个或多个节点组成,可通过其集群名称进行标识.通常这个Cluster 的名字是可以在 ...

  4. node.js中express模块创建服务器和http模块客户端发请求

    首先下载express模块,命令行输入 npm install express 1.node.js中express模块创建服务端 在js代码同文件位置新建一个文件夹(www_root),里面存放网页文 ...

  5. node.js中ws模块创建服务端和客户端,网页WebSocket客户端

    首先下载websocket模块,命令行输入 npm install ws 1.node.js中ws模块创建服务端 // 加载node上websocket模块 ws; var ws = require( ...

  6. node.js中net模块创建服务器和客户端(TCP)

    node.js中net模块创建服务器和客户端 1.node.js中net模块创建服务器(net.createServer) // 将net模块 引入进来 var net = require(" ...

  7. elasticsearch中的API

    elasticsearch中的API es中的API按照大类分为下面几种: 文档API: 提供对文档的增删改查操作 搜索API: 提供对文档进行某个字段的查询 索引API: 提供对索引进行操作 查看A ...

  8. 探究ElasticSearch中的线程池实现

    探究ElasticSearch中的线程池实现 ElasticSearch里面各种操作都是基于线程池+回调实现的,所以这篇文章记录一下java.util.concurrent涉及线程池实现和Elasti ...

  9. Elasticsearch中JAVA API的使用

    1.Elasticsearch中Java API的简介 Elasticsearch 的Java API 提供了非常便捷的方法来索引和查询数据等. 通过添加jar包,不需要编写HTTP层的代码就可以开始 ...

随机推荐

  1. Android开发 使用 adb logcat 显示 Android 日志

    作者 : 万境绝尘  转载请著名出处 eclipse 自带的 LogCat 工具太垃圾了, 开始用 adb logcat 在终端查看日志; 1. 解析 adb logcat 的帮助信息 在命令行中输入 ...

  2. lintcode-17-子集

    子集 给定一个含不同整数的集合,返回其所有的子集 注意事项 子集中的元素排列必须是非降序的,解集必须不包含重复的子集 样例 如果 S = [1,2,3],有如下的解: [ [3], [1], [2], ...

  3. (七)类、超类和子类 ——(多态,动态绑定,final类,类型转换,抽象类)

    java中所有的继承都是公有继承. 在子类中的构造其内可以初始化超类的公有域,但不能初始化超类的私有域. 因此需要在子类构造前的第一行使用super()语句初始化超类的私有域. 如果超类没有不带参数的 ...

  4. iOS- iPad里有趣的UIPopoverController

    效果: 1.对UIPopoverController的简单概述 1.1 UIPopoverController是在iPad开发中常用的一个组件(在iPhone上不允许使用),使用非常简单   1.2 ...

  5. 对alpha发布的总结技术随笔

    对于今天的alpha发布,首先需要自我检讨,因为我们组没有展示作品.主要的原因还是我们投入的时间不足.我们的项目是约跑App,首先选择做安卓平台的东西,我们大家都需要熟悉新的开发软件Android S ...

  6. Kafka性能之道

    Kafka高性能之道 高效使用磁盘 零拷贝 批处理和压缩 Partition ISR 高效使用磁盘 >顺序写cipan >Append Only(数据不更新,无记录级的数据删除,只会整个s ...

  7. veeValidate

    网站 http://vee-validate.logaretm.com/index.html#about 自定义为空时候的提示 Field-specific Custom Messages You m ...

  8. deep learning2

    九.Deep learning的常用模型或者方法 9.1.AutoEncoder自动编码器 Deep Learning最简单的一种方法是利用人工神经网络的特点,人工神经网络(ANN)本身就是具有层次结 ...

  9. 创建udp服务端对象

    DatagramSocket ds = null;//创建服务器对象 ds = new DatagramSocket(10001);//创建对象并指定端口 byte[] bytes = new byt ...

  10. 可持久化Treap

    终于写了一次可持久化Treap,做的是可持久化序列的模板题. Treap Treap=Tree+Heap,是一个随机化的数据结构.它的每个节点至少有两个关键字,一个是我们要存储的\(val\),一个是 ...