From 2aa7ed1c236c12b8aace03821c73d81b313dfca3 Mon Sep 17 00:00:00 2001 From: Mohsin Husen Date: Fri, 26 Feb 2016 14:54:51 +0000 Subject: [PATCH] DATAES-236 - Clear the search contexts associated with specified scroll id --- .../data/elasticsearch/core/ElasticsearchOperations.java | 8 ++++++++ .../data/elasticsearch/core/ElasticsearchTemplate.java | 6 ++++++ .../elasticsearch/core/ElasticsearchTemplateTests.java | 8 ++++++++ 3 files changed, 22 insertions(+) diff --git a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchOperations.java b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchOperations.java index f367e6205..86e8c0671 100755 --- a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchOperations.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchOperations.java @@ -547,6 +547,14 @@ public interface ElasticsearchOperations { */ Page scroll(String scrollId, long scrollTimeInMillis, SearchResultMapper mapper); + /** + * Clears the search contexts associated with specified scroll ids. + * + * @param scrollId + * + */ + void clearScroll(String scrollId); + /** * more like this query to search for documents that are "like" a specific document. * diff --git a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java index 1720cdf96..a2b7e1fdb 100755 --- a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java @@ -685,6 +685,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati bulkRequestBuilder.execute().actionGet(); } + clearScroll(scrollId); } @Override @@ -791,6 +792,11 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati return mapper.mapResults(response, null, null); } + @Override + public void clearScroll(String scrollId) { + client.prepareClearScroll().addScrollId(scrollId).execute().actionGet(); + } + @Override public Page moreLikeThis(MoreLikeThisQuery query, Class clazz) { diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java index db5ab0bf8..b5fec45e9 100755 --- a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java @@ -709,6 +709,7 @@ public class ElasticsearchTemplateTests { hasRecords = false; } } + elasticsearchTemplate.clearScroll(scrollId); assertThat(sampleEntities.size(), is(equalTo(30))); } @@ -735,6 +736,7 @@ public class ElasticsearchTemplateTests { hasRecords = false; } } + elasticsearchTemplate.clearScroll(scrollId); assertThat(sampleEntities.size(), is(equalTo(30))); } @@ -784,6 +786,7 @@ public class ElasticsearchTemplateTests { hasRecords = false; } } + elasticsearchTemplate.clearScroll(scrollId); assertThat(sampleEntities.size(), is(equalTo(30))); } @@ -835,6 +838,7 @@ public class ElasticsearchTemplateTests { hasRecords = false; } } + elasticsearchTemplate.clearScroll(scrollId); assertThat(sampleEntities.size(), is(equalTo(30))); } @@ -884,6 +888,7 @@ public class ElasticsearchTemplateTests { hasRecords = false; } } + elasticsearchTemplate.clearScroll(scrollId); assertThat(sampleEntities.size(), is(equalTo(30))); } @@ -928,6 +933,7 @@ public class ElasticsearchTemplateTests { hasRecords = false; } } + elasticsearchTemplate.clearScroll(scrollId); assertThat(sampleEntities.size(), is(equalTo(30))); } @@ -957,6 +963,7 @@ public class ElasticsearchTemplateTests { hasRecords = false; } } + elasticsearchTemplate.clearScroll(scrollId); assertThat(sampleEntities.size(), is(equalTo(30))); } @@ -986,6 +993,7 @@ public class ElasticsearchTemplateTests { hasRecords = false; } } + elasticsearchTemplate.clearScroll(scrollId); assertThat(sampleEntities.size(), is(equalTo(30))); }