• 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的属性配置:

    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自带的方法有限,所以可能还需要配合以上提到的两种方式才能达到你的要求

  • 相关阅读:
    建站两个月,说说我的想法
    我见过的郭弃疾先生(兰亭集势CEO)
    C#数组和集合互相转换的几种方法的效率分析
    (五)React Ant Design Pro + .Net5 WebApi:后端环境搭建Autofac注入+ 泛型仓储
    关于C++中对私有的测试总结
    uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型(转)
    GDB调试
    linux删除乱码文件
    转:C++ nan
    vim
  • 原文地址:https://www.cnblogs.com/hupengcool/p/4029170.html
Copyright © 2020-2023  润新知