欢迎来到天天文库
浏览记录
ID:24358922
大小:69.42 KB
页数:4页
时间:2018-11-14
《分布式搜索elasticsearch—节点实例化》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、分布式搜索Elasticsearch——节点实例化分类:Elasticsearch2012-12-2812:22394人阅读评论(0)收藏举报注:后面提到的所有代码都是以java为例。要连接到集群,首先要告诉集群:你是谁,你有什么特征。在es中体现为实例化节点。es通过org.elasticsearch.node.NodeBuilder的build()或者node()方法实例化节点,build()创建节点而不启动,而node()方法等价于build().start(),即创建并启动。首先实例化NodeBuilder,有两种方式,第一种
2、是new,如下:[java]viewplaincopyprint?1.NodeBuildernodeBuilder=newNodeBuilder();NodeBuildernodeBuilder=newNodeBuilder();第二种是使用NodeBuilder的工厂方法,NodeBuilder中有以下代码:[java]viewplaincopyprint?1.publicstaticNodeBuildernodeBuilder(){2.returnnewNodeBuilder();3.}publicstaticNodeBuilde
3、rnodeBuilder(){returnnewNodeBuilder();}所以可以直接通过以下代码实例化NodeBuilder:[java]viewplaincopyprint?1.NodeBuildernodeBuilder=NodeBuilder.nodeBuilder();NodeBuildernodeBuilder=NodeBuilder.nodeBuilder();实例化后便可设置该node的特性,NodeBuilder本身自带了一些方法:1.loadConfigSettings,是否加载配置文件。你可以在classpa
4、th下创建一个elasticsearch.yml文件,然后在其中设置一些属性(参见分布式搜索Elasticsearch——配置),再把loadConfigSettings的值设置为true即可,代码如下:[java]viewplaincopyprint?1.NodeBuildernodeBuilder=NodeBuilder.nodeBuilder().loadConfigSettings(true);NodeBuildernodeBuilder=NodeBuilder.nodeBuilder().loadConfigSettings
5、(true);loadConfigSettings默认为true。2.是否只作为客户端,即不存储索引数据,默认值为false,代码如下所示:[java]viewplaincopyprint?1.NodeBuildernodeBuilder=NodeBuilder.nodeBuilder().client(true);NodeBuildernodeBuilder=NodeBuilder.nodeBuilder().client(true);3.是否持有索引数据,默认值为true,代码如下所示:[java]viewplaincopypri
6、nt?1.NodeBuildernodeBuilder=NodeBuilder.nodeBuilder().data(true);NodeBuildernodeBuilder=NodeBuilder.nodeBuilder().data(true);client(boolean)和data(boolean)会有一定的关联,当client的值为true时,data的值默认为false,且不能改为true,否则会报错,即如下代码是不允许的:[java]viewplaincopyprint?1.NodeBuildernodeBuilder=
7、NodeBuilder.nodeBuilder().data(true).client(true);NodeBuildernodeBuilder=NodeBuilder.nodeBuilder().data(true).client(true);当client的值为false时,data的值默认为true,而且改为false也不起作用,也即以下两行代码是等价的:[java]viewplaincopyprint?1.NodeBuildernodeBuilder=NodeBuilder.nodeBuilder().data(true).c
8、lient(false);2.NodeBuildernodeBuilder=NodeBuilder.nodeBuilder().data(false).client(false);NodeBuildernodeBuild
此文档下载收益归作者所有