diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepository.java b/src/main/java/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepository.java index 82c12fbc7..996a16040 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepository.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepository.java @@ -15,8 +15,6 @@ */ package org.springframework.data.elasticsearch.repository.support; -import static org.springframework.util.CollectionUtils.*; - import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -28,11 +26,9 @@ import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; -import org.springframework.data.elasticsearch.client.erhlc.NativeSearchQueryBuilder; import org.springframework.data.elasticsearch.core.AbstractElasticsearchTemplate; import org.springframework.data.elasticsearch.core.ElasticsearchOperations; import org.springframework.data.elasticsearch.core.IndexOperations; -import org.springframework.data.elasticsearch.core.MultiGetItem; import org.springframework.data.elasticsearch.core.RefreshPolicy; import org.springframework.data.elasticsearch.core.SearchHit; import org.springframework.data.elasticsearch.core.SearchHitSupport; @@ -152,24 +148,12 @@ public class SimpleElasticsearchRepository implements ElasticsearchReposi Assert.notNull(ids, "ids can't be null."); List result = new ArrayList<>(); - Query idQuery = getIdQuery(ids); - if (isEmpty(idQuery.getIds())) { - return result; - } + Query query = getIdQuery(ids); - List> multiGetItems = execute( - operations -> operations.multiGet(idQuery, entityClass, getIndexCoordinates())); - - if (multiGetItems != null) { - multiGetItems.forEach(multiGetItem -> { - - if (multiGetItem.hasItem()) { - result.add(multiGetItem.getItem()); - } - }); - } - - return result; + List> searchHitList = execute( + operations -> operations.search(query, entityClass, getIndexCoordinates()).getSearchHits()); + // noinspection ConstantConditions + return (List) SearchHitSupport.unwrapSearchHits(searchHitList); } @Override @@ -339,7 +323,7 @@ public class SimpleElasticsearchRepository implements ElasticsearchReposi private Query getIdQuery(Iterable ids) { List stringIds = stringIdsRepresentation(ids); - return new NativeSearchQueryBuilder().withIds(stringIds).build(); + return operations.idsQuery(stringIds); } // endregion