我在使用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
提交
取消