鉴于使用 ElasticSearch 的 JavaAPI TransportClient 的应用程序,我想在类路径中使用 native elasticsearch.yml
(由 InternalSettingsPreparer
解析)配置文件通过传输连接到集群。
目前我有以下内容:
cluster:
name: elasticsearch # would be ${es.cluster.name}
network:
host: localhost
transport_address: localhost:9301 # would be ${es.network.trasport}
和客户端的初始化:
TransportClient client = new TransportClient();
这给了我异常(exception):
13/12/16 14:04:40 INFO elasticsearch.plugins: [Hanna Levy] loaded [], sites []
org.elasticsearch.client.transport.NoNodeAvailableException: No node available
但是当我添加以下行时
client.addTransportAddress(new InetSocketTransportAddress("localhost", 9301));
事情开始按预期工作。
所以我想知道,是否有一种方法可以从标准配置文件格式配置传输地址,而不是通过为配置文件配置一个配置文件来重新发明轮子?
最佳答案
使用 transport.tcp.port 应该如下所示:
cluster:
name: elasticsearch # would be ${es.cluster.name}
network:
host: localhost
transport:
tcp:
port: 9301 # would be ${es.network.transport.tcp.port}
此外,我通常为我的 elasticsearch.yml 文件使用以下格式
cluster.name=elasticsearch
network.host=localhost
network.transport.tcp.port=9301
关于java - 配置文件中ElasticSearch Java API TransportClient地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20611739/