Skip to content

Commit 2aa7ed1

Browse files
committed
DATAES-236 - Clear the search contexts associated with specified scroll id
1 parent 0f6004a commit 2aa7ed1

File tree

3 files changed

+22
-0
lines changed

3 files changed

+22
-0
lines changed

src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchOperations.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,14 @@ public interface ElasticsearchOperations {
547547
*/
548548
<T> Page<T> scroll(String scrollId, long scrollTimeInMillis, SearchResultMapper mapper);
549549

550+
/**
551+
* Clears the search contexts associated with specified scroll ids.
552+
*
553+
* @param scrollId
554+
*
555+
*/
556+
<T> void clearScroll(String scrollId);
557+
550558
/**
551559
* more like this query to search for documents that are "like" a specific document.
552560
*

src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,7 @@ public <T> Page<T> mapResults(SearchResponse response, Class<T> clazz, Pageable
685685
bulkRequestBuilder.execute().actionGet();
686686
}
687687

688+
clearScroll(scrollId);
688689
}
689690

690691
@Override
@@ -791,6 +792,11 @@ public <T> Page<T> scroll(String scrollId, long scrollTimeInMillis, SearchResult
791792
return mapper.mapResults(response, null, null);
792793
}
793794

795+
@Override
796+
public <T> void clearScroll(String scrollId) {
797+
client.prepareClearScroll().addScrollId(scrollId).execute().actionGet();
798+
}
799+
794800
@Override
795801
public <T> Page<T> moreLikeThis(MoreLikeThisQuery query, Class<T> clazz) {
796802

src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -709,6 +709,7 @@ public void shouldReturnResultsWithScanAndScrollForGivenCriteriaQuery() {
709709
hasRecords = false;
710710
}
711711
}
712+
elasticsearchTemplate.clearScroll(scrollId);
712713
assertThat(sampleEntities.size(), is(equalTo(30)));
713714
}
714715

@@ -735,6 +736,7 @@ public void shouldReturnResultsWithScanAndScrollForGivenSearchQuery() {
735736
hasRecords = false;
736737
}
737738
}
739+
elasticsearchTemplate.clearScroll(scrollId);
738740
assertThat(sampleEntities.size(), is(equalTo(30)));
739741
}
740742

@@ -784,6 +786,7 @@ public <T> Page<T> mapResults(SearchResponse response, Class<T> clazz, Pageable
784786
hasRecords = false;
785787
}
786788
}
789+
elasticsearchTemplate.clearScroll(scrollId);
787790
assertThat(sampleEntities.size(), is(equalTo(30)));
788791
}
789792

@@ -835,6 +838,7 @@ public <T> Page<T> mapResults(SearchResponse response, Class<T> clazz, Pageable
835838
hasRecords = false;
836839
}
837840
}
841+
elasticsearchTemplate.clearScroll(scrollId);
838842
assertThat(sampleEntities.size(), is(equalTo(30)));
839843
}
840844

@@ -884,6 +888,7 @@ public <T> Page<T> mapResults(SearchResponse response, Class<T> clazz, Pageable
884888
hasRecords = false;
885889
}
886890
}
891+
elasticsearchTemplate.clearScroll(scrollId);
887892
assertThat(sampleEntities.size(), is(equalTo(30)));
888893
}
889894

@@ -928,6 +933,7 @@ public <T> Page<T> mapResults(SearchResponse response, Class<T> clazz, Pageable
928933
hasRecords = false;
929934
}
930935
}
936+
elasticsearchTemplate.clearScroll(scrollId);
931937
assertThat(sampleEntities.size(), is(equalTo(30)));
932938
}
933939

@@ -957,6 +963,7 @@ public void shouldReturnResultsWithScanAndScrollForGivenCriteriaQueryAndClass()
957963
hasRecords = false;
958964
}
959965
}
966+
elasticsearchTemplate.clearScroll(scrollId);
960967
assertThat(sampleEntities.size(), is(equalTo(30)));
961968
}
962969

@@ -986,6 +993,7 @@ public void shouldReturnResultsWithScanAndScrollForGivenSearchQueryAndClass() {
986993
hasRecords = false;
987994
}
988995
}
996+
elasticsearchTemplate.clearScroll(scrollId);
989997
assertThat(sampleEntities.size(), is(equalTo(30)));
990998
}
991999

0 commit comments

Comments
 (0)