使用 TransportCilent 的 Java ElasticSearch 示例

标签 java json elasticsearch

下面的代码解释了Java和ElasticSearch之间的通信
使用传输客户端。当我运行时,我收到 org.elasticsearch.nodedisconnectedException。任何给出的 Java Elasticsearch 的清晰示例将不胜感激,或者任何人都可以帮助我找到解决方案。

public static Client function() {
    Settings setting = ImmutableSettings.settingsBuilder().put("cluster.name", "localtestsearch").build();
    client = new TransportClient();
    client = client.addTransportAddress(new InetSocketTransportAddress("localhost", 9300));
    return client;

}

public static void main(String[] args) {

    System.out.println("In Main Method");

    try {
        System.out.println("In try block");
        Client client = new TransportClient()
                .addTransportAddress(new InetSocketTransportAddress("localhost",
                        9300));


        System.out.println("Connected");

        client.close();

        Settings settings = ImmutableSettings.settingsBuilder()
                .put("client.transport.sniff", true).build();
        TransportClient client1 = new TransportClient(settings);


        org.elasticsearch.node.Node node = nodeBuilder().node();
        System.out.println("Node " + node);

        Client client = node.client();

        System.out.println("calling Client from Node " + client);

        node.close();
        System.out.println("Node CLosed");
    } catch (Exception ex) {
        ex.printStackTrace();
    }

}

}

最佳答案

import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.transport.InetSocketTransportAddress;

public class Test {
   public static void main(String[] args) {
       TransportClient client = new TransportClient();

       for(String host: client.settings().getAsArray("transport.client.initial_nodes")) {
           int port = 9300;

          // or parse it from the host string...
           String[] splitHost = host.split(":", 2);
           if(splitHost.length == 2) {
               host = splitHost[0];
               port = Integer.parseInt(splitHost[1]);
           }

           client.addTransportAddress(new InetSocketTransportAddress(host, port));
       }

       // ...
   }
}

关于使用 TransportCilent 的 Java ElasticSearch 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23261828/

相关文章:

java - 使用OSGi实现自动更新

elasticsearch - elasticsearch Basic许可证中每个群集的最大节点数是多少?

Elasticsearch 匹配与过滤器中的术语

javascript - 从 mysql 中提取数据并在 javascript 中使用它们

java - @JsonProperty 不工作(Weblogic 12.2.1 和 Java 8)

javascript - 带有一组 JSON 对象的 Backbone.js Bootstrap

python-2.7 - 带有条件和范围的elasticsearch-dsl-py查询过滤器

java - 使用 Java 进程设置 Linux ACL 权限

java - 如何使用 Container 添加填充?

通配符、基类和子类的 Java 泛型问题