当前位置: 首页 > 面试题库 >

NoNodeAvailableException:没有配置的节点可用

齐凯康
2023-03-14
问题内容

我正在尝试从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();

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

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

无论我使用 9200 还是 9300 设置 端口 ,结果都是一样的。

另外,我尝试使用 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))));

我的Java程序是否做错了什么( 防火墙 ,库的 版本 ,调用API的 方法 等)?我当前的 Java 版本是
1.8.0.121Elastic SearchTransport Client 的版本都是 5.2 。谢谢!


问题答案:

如评论中所述,

如果您使用的不是elasticsearch集群名称,则需要在设置中更新该名称。

Settings settings = Settings.builder()
        .put("cluster.name", "myClusterName").build();


 类似资料:
  • 问题内容: 我知道这个问题已经得到解决,但是我已经尽力了,无法解决我的问题。 我刚刚安装了elasticsearch并启动了它。这里的弹性日志: 因此,Elastic已在端口9300上完全运行并正在侦听。 我的群集名称是“我的应用程序”。 由elasticsearch.yml确认: 并且通过请求http:// localhost:9200 /来确认: 这是我的Maven依赖关系(elastic和c

  • 我正在尝试从Java Web服务中的弹性搜索进行搜索,下面是我现在的使用方法: 我在Java程序中做了什么(防火墙、库版本、调用API的方法等)错了吗?我现在的Java版本是1.8.0.121,Elastic Search和Transport Client的版本都是5.2。谢了!

  • 问题内容: 我正在上它可为本地 我正在使用Elastic4s进行连接,尝试了以下方法,但是所有这些都给了我错误 和 错误是 我完整的代码是 问题答案: 9200是用于通过HTTP连接的端口,这就是为什么它可以在您的浏览器中工作的原因。如果检查堆栈跟踪的顶部,则可以看到通过传输客户端(即TCP)进行连接,因此需要使用端口9300。试试这个:

  • 问题内容: 过去一个小时刚刚下载并安装了elasticsearch 1.3.2 打开到端口9200和9300:9400的IP表 在/ etc / hosts中设置我的计算机名称和IP 头模块和护理人员已安装且运行平稳 卷曲在本地主机上工作完美 将所有jar从下载中复制到eclipse中,因此版本相同 --Java– -输出- 更新:现在我真的很困惑。我只是按了日食3次。2次收到上述错误。1次搜索成

  • 嗨,朋友们,我正在用开发spring boot项目,我已经在本地机器上安装了弹性搜索,我已经在弹性搜索中安装了插件。我的弹性搜索设置正确,显示绿色标志。项目中的application-dev.yml文件如下: 弹性搜索服务正在我的机器上运行,但当我试图首先保存实体时,我的代码将实体保存在mysql中,然后使用在弹性搜索中,但将实体保存到Elastic中时,它会引发错误: 我也使用了端口而不是,但是

  • 问题内容: 我从计算机访问服务器 得到这个 为什么使用Java API会出错? 编辑 有集群和节点部分的配置 问题答案: 一些建议: 1-使用端口9300。[9300-9400]用于节点到节点通信,[9200-9300]用于HTTP通信。 2-确保您使用的Java API的版本与服务器上运行的elasticsearch的版本匹配。 3-确保集群名称为(检查服务器上的elasticsearch.ym