From b1edd72205d07ffd5cedc0d7eb1d7cd156b8bc41 Mon Sep 17 00:00:00 2001 From: Mohsin Husen Date: Sun, 23 Feb 2014 15:25:30 +0000 Subject: [PATCH] DATAES-52 - Support Get & Multi Get --- .../elasticsearch/core/ElasticsearchTemplate.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 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 98d1308f3..b0e978ee0 100755 --- a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java @@ -254,15 +254,20 @@ public class ElasticsearchTemplate implements ElasticsearchOperations { return resultsMapper.mapResults(getMultiResponse(searchQuery, clazz), clazz); } - private MultiGetResponse getMultiResponse(SearchQuery searchQuery, Class clazz) { + private MultiGetResponse getMultiResponse(Query searchQuery, Class clazz) { - ElasticsearchPersistentEntity persistentEntity = getPersistentEntityFor(clazz); + String indexName = isNotEmpty(searchQuery.getIndices()) ? searchQuery.getIndices().get(0) : getPersistentEntityFor(clazz).getIndexName(); + String type = isNotEmpty(searchQuery.getTypes()) ? searchQuery.getTypes().get(0) : getPersistentEntityFor(clazz).getIndexType(); + + Assert.notNull(indexName, "No index defined for Query"); + Assert.notNull(type, "No type define for Query"); + Assert.notEmpty(searchQuery.getIds(), "No Id define for Query"); MultiGetRequestBuilder builder = client.prepareMultiGet(); for (String id : searchQuery.getIds()) { - MultiGetRequest.Item item = new MultiGetRequest.Item(persistentEntity.getIndexName(), persistentEntity.getIndexType(), id); + MultiGetRequest.Item item = new MultiGetRequest.Item(indexName, type, id); if (searchQuery.getRoute() != null) { item = item.routing(searchQuery.getRoute());