Здравствуйте! У меня такая проблема: мне нужно сравнить определенный field в моем индексе и провести расчеты, которые потом сохраняются в другой индекс в processResults(hit1, hit 2). Для этого я использую scroll с двумя разными queries. После первой итерации все зависает. Подскажите, пожалуйста, в чем моя проблема.
QueryBuilder qb = prefixQuery("src", "s");
SearchResponse scrollResp = client.prepareSearch(index)
.setScroll(new TimeValue(60000))
.setQuery(qb)
.setSize(100)
.execute()
.actionGet();
while (true) {
for (SearchHit hit : scrollResp.getHits().getHits()) {
//Handle the hit...
QueryBuilder qb2 = prefixQuery("src", "src");
SearchResponse scrollResp2 = client.prepareSearch(index)
.setScroll(new TimeValue(60000))
.setQuery(qb2)
.setSize(100)
.execute()
.actionGet();
while (true) {
for (SearchHit hit2 : scrollResp2.getHits().getHits()) {
processResults(hit1, hit2)
}
scrollResp2 = client.prepareSearchScroll(scrollResp2.getScrollId()).setScroll(new TimeValue(60000)).execute().actionGet();
//Break condition: No hits are returned
if (scrollResp2.getHits().getHits().length == 0) {
break;
}
}
}
scrollResp = client.prepareSearchScroll(scrollResp.getScrollId()).setScroll(TimeValue.timeValueMinutes(1)).execute().actionGet();
//Break condition: No hits are returned
if (scrollResp.getHits().getHits().length == 0) {
break;
}
}