From 7d645ac5e1d2becb212ab4d0df2e5e87cb4e1c4a Mon Sep 17 00:00:00 2001 From: Kevin Leturc Date: Wed, 23 Sep 2015 13:23:00 +0200 Subject: [PATCH] DATAES-200 Set persistent entity index and type in query when no indices/types are set. --- .../core/ElasticsearchTemplate.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) 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 90209487a..27e5accb2 100755 --- a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java @@ -335,6 +335,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati @Override public CloseableIterator stream(CriteriaQuery query, Class clazz) { final long scrollTimeInMillis = TimeValue.timeValueMinutes(1).millis(); + setPersistentEntityIndexAndType(query, clazz); final String initScrollId = scan(query, scrollTimeInMillis, false); return doStream(initScrollId, scrollTimeInMillis, clazz, resultsMapper); } @@ -347,6 +348,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati @Override public CloseableIterator stream(SearchQuery query, final Class clazz, final SearchResultMapper mapper) { final long scrollTimeInMillis = TimeValue.timeValueMinutes(1).millis(); + setPersistentEntityIndexAndType(query, clazz); final String initScrollId = scan(query, scrollTimeInMillis, false); return doStream(initScrollId, scrollTimeInMillis, clazz, mapper); } @@ -896,12 +898,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati } private SearchRequestBuilder prepareSearch(Query query, Class clazz) { - if (query.getIndices().isEmpty()) { - query.addIndices(retrieveIndexNameFromPersistentEntity(clazz)); - } - if (query.getTypes().isEmpty()) { - query.addTypes(retrieveTypeFromPersistentEntity(clazz)); - } + setPersistentEntityIndexAndType(query, clazz); return prepareSearch(query); } @@ -1063,6 +1060,15 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati } } + private void setPersistentEntityIndexAndType(Query query, Class clazz) { + if (query.getIndices().isEmpty()) { + query.addIndices(retrieveIndexNameFromPersistentEntity(clazz)); + } + if (query.getTypes().isEmpty()) { + query.addTypes(retrieveTypeFromPersistentEntity(clazz)); + } + } + private String[] retrieveIndexNameFromPersistentEntity(Class clazz) { if (clazz != null) { return new String[]{getPersistentEntityFor(clazz).getIndexName()};