@Override public EsScrollResult scroll(EsScrollResult scrollResult) { SearchResponse response = nextScroll(scrollResult.getScrollId(), scrollResult.getKeepAlive()); return getScrollResults(scrollResult.getQueryBuilder(), response, response.getScrollId(), scrollResult.getKeepAlive()); }
public EsIterableQueryResultImpl(ElasticSearchService searchService, EsScrollResult scrollResult) { assert !scrollResult.getQueryBuilder().getSelectFieldsAndTypes().isEmpty(); this.searchService = searchService; this.scrollResult = scrollResult; this.converter = new EsSearchHitConverter(scrollResult.getQueryBuilder().getSelectFieldsAndTypes()); this.size = scrollResult.getElasticsearchResponse().getHits().getTotalHits(); }
@Override public void clearScroll(EsScrollResult scrollResult) { clearScroll(scrollResult.getScrollId()); }
private SearchHit nextHit() { if (relativePos == scrollResult.getElasticsearchResponse().getHits().getHits().length) { // Retrieve next scroll scrollResult = searchService.scroll(scrollResult); relativePos = 0; } SearchHit hit = scrollResult.getElasticsearchResponse().getHits().getAt(relativePos); relativePos++; pos++; return hit; }
protected EsScrollResult getScrollResults(NxQueryBuilder queryBuilder, SearchResponse response, String scrollId, long keepAlive) { if (queryBuilder.returnsDocuments()) { DocumentModelListImpl docs = getDocumentModels(queryBuilder, response); return new EsScrollResult(docs, response, queryBuilder, scrollId, keepAlive); } else if (queryBuilder.returnsRows()) { IterableQueryResult rows = getRows(queryBuilder, response); return new EsScrollResult(rows, response, queryBuilder, scrollId, keepAlive); } return new EsScrollResult(response, queryBuilder, scrollId, keepAlive); }