【问题标题】:How to connect to remote server using Elasticsearch Node Client Java如何使用 Elasticsearch Node Client Java 连接到远程服务器
【发布时间】:2015-01-29 20:38:33
【问题描述】:

我正在尝试使用 Elasticsearch Java NodeBuilder 客户端连接到我的服务器。但是我没有看到任何指定服务器地址和端口的选项(就像我们可以在传输客户端中使用addNewTransportAddress("serveraddress", port)) 一样。如何让节点客户端连接到我的服务器?代码如下,我在哪里提到服务器地址连接到?

//On Startup
Node node = nodeBuilder()
        .clusterName("elasticsearch")
        .data(false) //No shards allocated; or can set client to true
        .client(true) //No shards allocated; or can set data to false
        .node();

//Node Client
Client client = node.client();

//Get API       
GetResponse response = client.prepareGet("indexname", "type", "id")
        .execute()
        .actionGet();

System.out.println("----------------Index Output Begin----------------");
System.out.println("Index Name: " + response.getIndex());
System.out.println("Type: " + response.getType());
System.out.println("Document ID: " + response.getId());
System.out.println("Document Version: " + response.getVersion());
System.out.println("Source: " + response.getSourceAsString());

【问题讨论】:

    标签: java elasticsearch server client elasticsearch-java-api


    【解决方案1】:

    节点客户端基于多播。 您的客户端和节点之间的网络必须位于启用多播的网络中。然后客户端将根据集群名称“发现”节点。

    如果你需要连接到远程服务器(通过指定IP地址),你必须使用transport client

    Settings settings = ImmutableSettings.settingsBuilder()
            .put("cluster.name", "myClusterName").build();
    Client client = new TransportClient(settings)
            .addTransportAddress(new InetSocketTransportAddress("host1", 9300))
            .addTransportAddress(new InetSocketTransportAddress("host2", 9300));
    

    【讨论】:

      【解决方案2】:

      当我使用 ImmutableSettings 时,我得到了"ImmutableSettings cannot be resolved"

      我的代码是:

      Node node =nodeBuilder()
                 .settings(ImmutableSettings.settingsBuilder().put("path.home",   "/home/amit/elasticsearch-2.1.0/bin"))
                  .client(true)
                  .node();
              Client client = node.client(); 
      

      【讨论】:

      • 我遇到了同样的问题。看来 ImmutableSettings 在 2.2.0 版本中被 Settings 取代
      • 节点节点= NodeBuilder.nodeBuilder().settings(Settings.builder() .put("path.home", "/media/rajnish/7F58-E3202/elasticsearch-2.1.0") ) .client(false) .local(true) .node(); //创建客户端对象。客户端client = node.client();
      猜你喜欢
      • 2021-04-25
      • 1970-01-01
      • 2013-11-16
      • 1970-01-01
      • 2016-05-31
      • 1970-01-01
      • 2014-12-09
      • 2018-02-12
      • 1970-01-01
      相关资源
      最近更新 更多