java - 配置文件中ElasticSearch Java API TransportClient地址

标签 java elasticsearch

鉴于使用 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/

相关文章:

elasticsearch - 如何在 bool 查询中仅选择一个分支

sql-server - 将批量数据索引到 ElasticSearch 的首选方法?

search - Elasticsearch术语统计查询未正确分组

java - Java是如何实现链表的

java - Spring自定义用户详情服务空指针异常

java - 异常 : org. hibernate.MappingException:实体映射中的重复列

elasticsearch - 我是如何达到 index.mapping.total_fields.limit 的?

elasticsearch - not_analyzed索引的 Elasticsearch dynamic_templates

java - 如何使用Java中的split函数分割像p^q这样的字符串?

java - 为什么模数很大似乎在 Java 中给出了错误的答案