NoNodeAvailableException:没有配置的节点可用

Ala*_*ght 4 java elasticsearch

我正在尝试在Java Web Service中搜索Elastic Search,这是我现在使用的方法:

    Client client = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.10.150"), 9200));
    SearchResponse searchResponse = client.prepareSearch().execute().actionGet();
Run Code Online (Sandbox Code Playgroud)

第一行可以正常工作,但当它转到第二行时,将发生下面的异常:

NoNodeAvailableException [没有配置的节点可用:[{#transport#-1} {TskPSVeBRR6CvCzP9EVhkQ} {192.168.10.150} {192.168.10.150:9200}]]

无论我使用92009300设置端口,结果都是一样的.

此外,我试图使用NEST从我的.Net程序中搜索,它运行得很好.这是我尝试的方式:

    var node = new Uri("http://192.168.10.150:9200");
    var settings = new ConnectionSettings(node).DefaultIndex("iod-2017.03.08.*");
    _EsClient = new ElasticClient(settings);
    var index = String.Format("iod-{0}.{1:00}.{2:00}.*", item.TriggerTime.Year, item.TriggerTime.Month, item.TriggerTime.Day);
    var uniqueId = item.UniqueId.ToString();
    var result = _EsClient.Search<logs>(s => s.Index(index).Query(q => q.Match(t => t.Field(l => l.id).Query(uniqueId))));
Run Code Online (Sandbox Code Playgroud)

我的Java程序是否有任何错误(防火墙,库的版本,调用API的方法等)?我目前的Java版本是1.8.0.121,Elastic SearchTransport Client的版本都是5.2.谢谢!

Rah*_*hul 6

如评论中所述,

如果您使用的是除弹性搜索之外的群集名称,则需要在设置中更新相同的名称.

Settings settings = Settings.builder()
        .put("cluster.name", "myClusterName").build();
Run Code Online (Sandbox Code Playgroud)