elasticsearch中Node的创建
要连接到集群,首先要告诉集群:你是谁,你有什么特征。在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的属性配置:
- 使用配置文件方式,即在classpath下建立一个elasticsearch.yml文件,然后把分布式搜索Elasticsearch——配置里面提到的配置加入到此文件中,再保持loadConfigSettings为true即可;
- 使用Map方式,然后用NodeBuilder.nodeBuilder().settings(settings);
- 使用NodeBuilder自带了client、data、local、clusterName方法。通常我们可以用 Fluent API 来完成配置,例如:
Node node = NodeBuilder.nodeBuilder().clusterName("elasticsearch").client(true).node();
不过NodeBuilder自带的方法有限,所以可能还需要配合以上提到的两种方式才能达到你的要求
elasticsearch中Node的创建的更多相关文章
- 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作(二)
CSSDesk body { background-color: #2574b0; } /*! zybuluo */ article,aside,details,figcaption,figure,f ...
- 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作
http://www.cnblogs.com/wgp13x/p/4934521.html 内容一样,样式好的版本. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据 ...
- Elasticsearch中的一些重要概念:cluster, node, index, document, shards及replica
首先,我们来看下一下如下的这个图: Cluster Cluster也就是集群的意思.Elasticsearch集群由一个或多个节点组成,可通过其集群名称进行标识.通常这个Cluster 的名字是可以在 ...
- node.js中express模块创建服务器和http模块客户端发请求
首先下载express模块,命令行输入 npm install express 1.node.js中express模块创建服务端 在js代码同文件位置新建一个文件夹(www_root),里面存放网页文 ...
- node.js中ws模块创建服务端和客户端,网页WebSocket客户端
首先下载websocket模块,命令行输入 npm install ws 1.node.js中ws模块创建服务端 // 加载node上websocket模块 ws; var ws = require( ...
- node.js中net模块创建服务器和客户端(TCP)
node.js中net模块创建服务器和客户端 1.node.js中net模块创建服务器(net.createServer) // 将net模块 引入进来 var net = require(" ...
- elasticsearch中的API
elasticsearch中的API es中的API按照大类分为下面几种: 文档API: 提供对文档的增删改查操作 搜索API: 提供对文档进行某个字段的查询 索引API: 提供对索引进行操作 查看A ...
- 探究ElasticSearch中的线程池实现
探究ElasticSearch中的线程池实现 ElasticSearch里面各种操作都是基于线程池+回调实现的,所以这篇文章记录一下java.util.concurrent涉及线程池实现和Elasti ...
- Elasticsearch中JAVA API的使用
1.Elasticsearch中Java API的简介 Elasticsearch 的Java API 提供了非常便捷的方法来索引和查询数据等. 通过添加jar包,不需要编写HTTP层的代码就可以开始 ...
随机推荐
- Mr. Frog’s Game(模拟连连看)
Description One day, Mr. Frog is playing Link Game (Lian Lian Kan in Chinese). In this game, if you ...
- Alpha发布——Thunder团队
视频展示 视频链接: 爱奇艺: http://www.iqiyi.com/w_19ruzwru25.html (画质清晰,但可能需多次刷新或重新打开页面,此问题因电脑型号和网络而异) 优酷: ...
- 第十九次ScrumMeeting会议
第十九次Scrum Meeting 时间:2017/12/9 地点:三公寓大厅 人员:蔡帜 王子铭 游心 解小锐 王辰昱 李金奇 杨森 陈鑫 赵晓宇 照片: 目前工作进展 名字 今日 明天的工作 蔡帜 ...
- ACM 第一天
标签库元素: 队列<queue> FIFO 栈 <stack> FICO 集合 set 不定长数组 vector 映射 map Maximum Multiple Time ...
- TCP系列02—连接管理—1、三次握手与四次挥手
一.TCP连接管理概述 正如我们在之前所说TCP是一个面向连接的通信协议,因此在进行数据传输前一般需要先建立连接(TFO除外),因此我们首先来介绍TCP的连接管理. 通常一次完整的TCP数据传输一般包 ...
- Zigbee安全基础篇Part.1
原文地址: https://www.4hou.com/wireless/14211.html 导语:ZigBee是一种开源无线技术,用于低功耗嵌入式设备(无线电系统).本文探讨了ZigBee协议的可用 ...
- Spring事务管理Transaction
Spring提供了许多内置事务管理器实现: DataSourceTransactionManager:位于org.springframework.jdbc.datasource包中,数据源事务管理器, ...
- Delphi DBGridEH中,选中行、列、单元格
// 新增行后,默认首列 procedure TForm1.ADOQuery1AfterInsert(DataSet: TDataSet);begin with DBGridEh1 do begi ...
- 【bzoj1096】[ZJOI2007]仓库建设 斜率优化dp
题目描述 L公司有N个工厂,由高到底分布在一座山上.如图所示,工厂1在山顶,工厂N在山脚.由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用.突然有一天,L公司的总裁L ...
- Django 2.0 学习(05):Django Admin
Django Admin 站点的管理者,而非访问者. 创建admin用户 首先,执行下面命令: python manage.py createsuperuser 其次,输入用户名和密码: Userna ...