网站关闭多久排名会下降,个人网站建设方案书怎么写,本地网站架设工具,asp网站开发实例为什么80%的码农都做不了架构师#xff1f; 要连接到集群#xff0c;首先要告诉集群#xff1a;你是谁#xff0c;你有什么特征。在 ES 中体现为实例化节点。 ES 通过 org.elasticsearch.node.NodeBuilder 的 build() 或者 node() 方法实例化节点#xff0… 为什么80%的码农都做不了架构师 要连接到集群首先要告诉集群你是谁你有什么特征。在 ES 中体现为实例化节点。 ES 通过 org.elasticsearch.node.NodeBuilder 的 build() 或者 node() 方法实例化节点build() 创建节点而不启动而 node() 方法等价于 build().start() 即 创建并启动。 首先实例化 NodeBuilder 有两种方式第一种是 new, 如下 NodeBuilder nodeBuilder new NodeBuilder(); 第二种使用 NodeBuilder 的工厂方法NodeBuilder 中有以下方法 public static NodeBuilder nodeBuilder(){return new NodeBuilder();
} 所以可以直接通过以下代码实例化 NodeBuilder: NodeBuilder nodeBuilder NodeBuilder.nodeBuilder(); 实例化后便可设置该 node 的特性NodeBuilder 本身自带了一些方法 1、loadConfigSettings ,是否家在配置文件。 你可以在 classpathx 下 创建一个 elasticsearch.yml 文件然后再其中设置一些属性参见分布式搜索Elasticsearch——配置 ,再把 loadConfigSettings 的值设置为 true 即可代码如下 NodeBuilder nodeBuilder NodeBuilder.nodeBuilder().loadConfigSettings(true); loadConfigSettings 默认为 true. 2、是否只作为客户端即不存储索引数据默认值为false 代码如下所示 NodeBuilder nodeBuilder NodeBuilder.nodeBuilder().client(true); 3、是否持有索引数据默认值为 true代码如下所示 NodeBuilder nodeBuilder NodeBuilder.nodeBuilder().data(true); client(boolean) 和 data(boolean) 是有一定关联的 当 client 为 true 时候 data 默认值为 false且不能改为 true否则会报错。 当 client 为 false 时候data 默认值为 true而且改为 false 也不起作用也就是下面代码等价 NodeBuilder nodeBuilder NodeBuilder.nodeBuilder().data(true).client(false);
NodeBuilder nodeBuilder NodeBuilder.nodeBuilder().data(false).client(false); 4、是否为 本地节点本地节点是指在 JVM 级别中的统计当多个节点使用同一个 JVM 时这些节点可以组合成一个集群而非同一个 JVM 下的节点则不处于集群中默认值为 false: NodeBuilder nodeBuilder NodeBuilder.nodeBuilder().local(true);5、设置集群名即该节点位于哪个集群下默认值elasticsearch: NodeBuilder nodeBuilder NodeBuilder.nodeBuilder().clusterName(your name); 若多个节点设置了同一个 clusterName则说明这几个节点位于同一个集群下。 6、以 Map 的方式设置属性NodeBuilder 中有以下两个方法 /*** Explicit node settings to set*/
public NodeBuilder settings(Settings.Builder settings){return settings(settings.build());
}/*** Explicit node settings set*/
public NodeBuilder settings(Settings settings){this.settings.put(settings);return this;
} 这两个方法允许通过 Map 的方法设置属性如下代码所示 MapString,String settingsMap new HashMapString,String();
settingsMap.put(node.client,false);
settingsMap.put(node.data,true);
settingsMap.put(node.local,true);
settingsMap.put(cluster.name,clusterName);
settingsMap.put(node.name,geloin);Settings settings ImmutableSettings.settingsBuilder().put(settingsMap).build();
Node node NodeBuilder.nodeBuilder().settings(settings).node(); org.elasticsearch.common.settings.Settings 是一个接口 org.elasticsearch.common.settings.ImmutableSettings 才是它的实现类。 上一篇文章 分布式搜索 Elasticsearch —— 配置 说了一些 ES 的配置可以在上述的代码中的 map 中设置。 综上所述我们对设置 Node 的属性有以下结论 1、使用配置文件即在 classpath 下建立 elasticsearch.yml 文件然后把 分布式搜索 Elasticsearch —— 配置 李曼提到的配置加入到此文件中再保持 loadConfigSettings为 true 即可 2、使用 Map 方式然后用 NodeBuilder.nodeBuilder().settings(settings); 3、使用 NodeBuilder 自带了 client 、data、local、clusterName 方法不过 NodeBuilder 自带方法有限所以可能还需要配合以上提到的两种方式才能达到要求。 转载于:https://my.oschina.net/exit/blog/805163