因此无论出于何种原因,我正在尝试运行一个简单的Java应用程序来从另一个索引(" myindex")创建一个全新的索引来修复一些数据,但它似乎崩溃并说"找不到搜索上下文id = 5322"它说每个节点的不同ID(每个节点?)。
我有3个节点。运行elasticsearch的3台服务器。
我在这里跟着例子:
https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.4/java-search-scrolling.html
确保我有65K的限制:
https://www.elastic.co/guide/en/elasticsearch/reference/5.4/file-descriptors.html
main(String[] args){
final TimeValue keepAlive = TimeValue.timeValueSeconds(90L);
SearchResponse scrollResp = client.prepareSearch("myindex").setScroll(keepAlive)
.setSize(100).get();
do
{
for(SearchHit hit : scrollResp.getHits().getHits())
{
i++;
// do something here to prepare data for later rewriting to new index
}
scrollResp = client.prepareSearchScroll(scrollResp.getScrollId())
.setScroll(keepAlive)
.execute().actionGet();
} while(scrollResp.getHits().getHits().length != 0);
System.out.println("Storing entries...");
/// store some of this info
}
我解释了这个错误:
SearchContextMissingException,由以下引起:org.elasticsearch.search.SearchContextMissingException:找不到id的搜索上下文[5031530] at org.elasticsearch.search.SearchService.findContext(SearchService.java:480) 在org.elasticsearch.search.SearchService.executeFetchPhase(SearchService.java:450)
在node-2 ...内部异常中找不到id = 45233:无法找到id = 52363 node-3
答案 0 :(得分:0)
所以我没有发现问题,但由于可能的原因,问题得到解决: