我在使用Maven 的Java 项目中使用Elasticsearch:... <elasticsearch.version>6.7.0</elasticsearch.version>... <!-- Elasticsearch --> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>${elasticsearch.version}</version> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>${elasticsearch.version}</version> </dependency> <dependency> <groupId>org.elasticsearch.plugin</groupId> <artifactId>transport-netty4-client</artifactId> <version>${elasticsearch.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-to-slf4j</artifactId> <version>2.8.2</version> </dependency> <!-- Elasticsearch --> 当我尝试初始化 TransportClient 以便为文档编制索引时,出现错误: NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{BHMBbfcrSUOM_Pyaf1LcnA}{localhost}{127.0.0.1:9300}]]也许需要在 config/elasticsearch.yaml 中添加更多关于传输的信息,或者当前配置是错误的。Java代码: TransportAddress address; TransportClient client; Settings settings; try { address = new TransportAddress(InetAddress.getByName("localhost"), 9300); settings = Settings .builder() .put("cluster.name", "lib2life") .put("client.transport.sniff", true) .build(); /* Initiate Transport Client */ client = new PreBuiltTransportClient(settings) .addTransportAddress(address); }
2 回答
神不在的星期二
TA贡献1963条经验 获得超6个赞
我解决了这个问题。问题是我使用的是带有 TransportClient 的 Elasticsearch 6.7.0 版本,它已被弃用并被 RestHighLevelClient 取代。此外,我必须使用端口 9200 并取消注释 http.port: 9200 和 discovery.seed_hosts: ["host1", "host2"] from elasticsearch.yaml
精慕HU
TA贡献1845条经验 获得超8个赞
问题在于您的端口配置,您正在使用端口9300
进行 REST 调用,该端口实际上用于 elasticsearch 集群中的节点间通信。请更改下面的 java 代码以使用该端口9200
。
address = new TransportAddress(InetAddress.getByName("localhost"), 9200);
添加回答
举报
0/150
提交
取消