由於應用程序使用ElasticSearch的JavaAPI傳輸客戶端,因此我希望在類路徑中使用本地elasticsearch.yml
(由InternalSettingsPreparer
解析)配置文件以通過傳輸連接到羣集。配置文件中的ElasticSearch Java API傳輸客戶端地址
現在我有以下內容:
cluster:
name: elasticsearch # would be ${es.cluster.name}
network:
host: localhost
transport_address: localhost:9301 # would be ${es.network.trasport}
和客戶端的初始化:
TransportClient client = new TransportClient();
這使我異常:
13/12/16 14:04:40 INFO elasticsearch.plugins: [Hanna Levy] loaded [], sites []
org.elasticsearch.client.transport.NoNodeAvailableException: No node available
但是當我添加以下line
client.addTransportAddress(new InetSocketTransportAddress("localhost", 9301));
事情開始按預期工作。
所以我想知道,是否有一種方法來配置標準配置文件格式的傳輸地址,而不是通過配置文件的配置文件重新發明輪子?
不起作用依然:org.elasticsearch.client.transport.NoNodeAvailableException:沒有可用的節點 \t在org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:212) –
我測試了這個本地和有類似的錯誤,直到我修改端口爲一個範圍:9300-9400我檢查了文檔和端口設置應該是一個範圍 - http://www.elasticsearch.org/guide/en/elasticsearch/reference/ current/modules-transport.html它默認爲9300-9400,這對您應該足夠了。因此,您可以將9300-9400的值或刪除它,因爲您已經使用了默認值。 –
仍然沒有成功: // java代碼: TransportClient client = new TransportClient(); ();(); prepareState()。execute()。actionGet(); //配置/ elastisearch.yml cluster.name:elasticsearch network.host:本地主機 network.transport.tcp.port:9300-9400 仍然給出 「無可用節點」 異常 附: es-0.90.7 –