有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

为什么我的elasticsearch无法在JAVA API中构建transportclient?

我有一个简单的Java elasticsearch代码,如下所示:

public class TryElastic {

public static void main(String[] args) throws UnknownHostException {

    Map<String, Object> json = new HashMap<String, Object>();
    json.put("user","kimchy");
    json.put("postDate",new Date());
    json.put("message","trying out Elasticsearch");

    try {
        Settings settings = Settings.settingsBuilder()
            .put("cluster.name", "elasticsearch")
            .put("client.transport.sniff", true).build();

        TransportClient client = TransportClient.builder().settings(settings).build();
        //client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));
    } catch (NoNodeAvailableException e) {
        System.out.println(e.toString());
    }

    System.out.println("test");
}

}

这很简单,但我在下面的一行中发现了一个错误:

TransportClient client = TransportClient.builder().settings(settings).build();

它会显示如下错误消息:

Exception in thread "main" java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:78)
at java.io.InputStreamReader.<init>(InputStreamReader.java:113)
at org.elasticsearch.node.internal.InternalSettingsPreparer.randomNodeName(InternalSettingsPreparer.java:198)
at org.elasticsearch.node.internal.InternalSettingsPreparer.finalizeSettings(InternalSettingsPreparer.java:177)
at org.elasticsearch.node.internal.InternalSettingsPreparer.prepareSettings(InternalSettingsPreparer.java:64)
at org.elasticsearch.client.transport.TransportClient$Builder.build(TransportClient.java:119)
at TryElastic.main(TryElastic.java:64)

所以,你能给我建议吗?我一直在寻找解决方案,但我找不到。我需要实现什么配置吗?我的elasticsearch服务器运行正常,它可以执行索引并从命令提示符下获取查询。谢谢


共 (1) 个答案

  1. # 1 楼答案

    这个代码对我有用。这是版本问题。TransportClient的默认端口为9300,代码不使用Elasticsearch 2.0编译

    使用这个

    设置=设置。settingsBuilder() .put(“cluster.name”,clusterName)。build()

    Client=TransportClient。生成器()。设置(设置)。构建() .addTransportAddress(新的InetSocketTransportAddress(新的InetSocketAddress(“127.0.0.1”,9300))

    参考:Here's the link