我是Elastic Search的新手。我在我的代码中有以下内容或正在寻找“无节点可用异常”的解决方案'以下情况中的问题。
在情景中,如果消费者要求客户提供所有4种类型的数据,并且我们首先按顺序询问首选项,地址,兴趣和基本详细信息。它运作良好。但这增加了性能。所以我们希望处理这些事情并使数据并行。
所以我们使用Spring Task Executors来并行执行此操作。在这种情况下,我们从一个索引获取数据,而其他人将获得“无节点可用例外”#39;它非常随意地说明了我们得到这个问题的数据。
请帮助我。
提前致谢!....
答案 0 :(得分:1)
当尝试将数据从多个Web应用程序写入同一ES节点时,我遇到了类似的问题。我通过为每个节点创建单独的节点来修复它。
我建议您尝试ES的这些设置
client.transport.sniff=true
sniffOnConnectionFault=true
您还可以在一个查询中获取4个索引的数据。 对于客户偏好/客户地址/客户利益/客户基本详细信息。
示例代码:
SearchRequestBuilder srb = client
.prepareSearch("preference_index", "address_index", "interests_index", "details_index")
.setTypes("preference_doc", "address_doc", "interests_doc", "details_doc")
.setSearchType(SearchType.DEFAULT);
QueryBuilder boolBuilder = QueryBuilders.boolQuery().should(
QueryBuilders.matchQuery("id_customer", "14"));
SearchResponse response = srb.setSize(4).execute().actionGet();
SearchHit[] docs = response.getHits().getHits();