![](/img/trans.png)
[英]NoNodeAvailableException[None of the configured nodes are available] in Elasticsearch 5.1.2
[英]Elasticsearch NoNodeAvailableException None of the configured nodes are available
Settings settings = Settings.settingsBuilder()
.put("cluster.name", "logging_elasticsearch")
.build();
TransportClient client = TransportClient.builder()
.settings(settings)
.build()
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByAddress(new byte[]{10,100,30,62}), 9300));
SearchResponse response = client.prepareSearch("logstash-2016.09.08")
.setTypes("type1", "type2")
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setQuery(QueryBuilders.termQuery("multi", "test")) // Query
.setPostFilter(QueryBuilders.rangeQuery("age").from(12).to(18)) // Filter
.setFrom(0).setSize(60).setExplain(true)
.execute()
.actionGet();
elasticsearch.yml我得到一个NoNodeAvailableException
执行我的搜索查询时。
我尝试了这个解决方案: https : //stackoverflow.com/a/33875764/2616923但它没有用。
试试这种方式,你的代码似乎非常接近:
Settings settings = Settings.settingsBuilder()
.put("cluster.name", "<elasticsearch-cluster-name>")
.build();
Client client = new TransportClient.Builder()
.settings(settings)
.build()
.addTransportAddress(new InetSocketTransportAddress(new InetSocketAddress("<elasticsearch-network-host>", <elasticsearch-transport-client-port|default 9300>)));
==== elasticsearch.yml ====
cluster.name: <elasticsearch-cluster-name>
node.name: <elasticsearch-network-host>
network.host: <elasticsearch-network-host>
network.bind_host: 0
尝试将节点名称设置为如下所示,
Settings esSettings = Settings.builder().put("cluster.name", esClusterName)
.put("node.name",esNodeName)
I have created transport client with more parameters. Below code is perfectly running in production.
Settings settingsBuilder = Settings.builder()
.put("cluster.name", DBPropertyUtil.getPropertyByName("es.cluster")).put("client.transport.sniff", true).put("client.transport.ignore_cluster_name", true).build();
Client client = new PreBuiltTransportClient(settingsBuilder)
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(host), port));
Put respective details for host, port, clusterName as per your elasticSearch Servers config.
如果您在使用全新安装的Java和ElasticSearch的服务器上收到此错误,请检查是否存在JAVA_HOME环境设置,并将其设置为JRE的正确路径。 例如:
JAVA_HOME = C:\\ Program Files \\ Java \\ jre1.8.0_192
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.