Skip to content

Commit 9569442

Browse files
committed
DATAES-151 Update findAll(Iterable) method to do a multiGet query instead of search query.
1 parent fad9a56 commit 9569442

File tree

1 file changed

+24
-6
lines changed

1 file changed

+24
-6
lines changed

src/main/java/org/springframework/data/elasticsearch/repository/support/AbstractElasticsearchRepository.java

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616
package org.springframework.data.elasticsearch.repository.support;
1717

18-
import static org.elasticsearch.index.query.QueryBuilders.*;
18+
import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;
1919

2020
import java.io.Serializable;
2121
import java.lang.reflect.ParameterizedType;
@@ -26,15 +26,23 @@
2626
import java.util.List;
2727

2828
import org.elasticsearch.ElasticsearchException;
29-
import org.elasticsearch.common.collect.Lists;
3029
import org.elasticsearch.index.query.QueryBuilder;
3130
import org.slf4j.Logger;
3231
import org.slf4j.LoggerFactory;
3332
import org.springframework.dao.InvalidDataAccessApiUsageException;
34-
import org.springframework.data.domain.*;
33+
import org.springframework.data.domain.Page;
34+
import org.springframework.data.domain.PageImpl;
35+
import org.springframework.data.domain.PageRequest;
36+
import org.springframework.data.domain.Pageable;
37+
import org.springframework.data.domain.Sort;
3538
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
3639
import org.springframework.data.elasticsearch.core.FacetedPage;
37-
import org.springframework.data.elasticsearch.core.query.*;
40+
import org.springframework.data.elasticsearch.core.query.DeleteQuery;
41+
import org.springframework.data.elasticsearch.core.query.GetQuery;
42+
import org.springframework.data.elasticsearch.core.query.IndexQuery;
43+
import org.springframework.data.elasticsearch.core.query.MoreLikeThisQuery;
44+
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
45+
import org.springframework.data.elasticsearch.core.query.SearchQuery;
3846
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
3947
import org.springframework.util.Assert;
4048

@@ -45,6 +53,7 @@
4553
* @author Rizwan Idrees
4654
* @author Mohsin Husen
4755
* @author Ryan Henszey
56+
* @author Kevin Leturc
4857
*/
4958
public abstract class AbstractElasticsearchRepository<T, ID extends Serializable> implements
5059
ElasticsearchRepository<T, ID> {
@@ -121,9 +130,9 @@ public Iterable<T> findAll(Sort sort) {
121130
public Iterable<T> findAll(Iterable<ID> ids) {
122131
Assert.notNull(ids, "ids can't be null.");
123132
SearchQuery query = new NativeSearchQueryBuilder()
124-
.withQuery(inQuery(entityInformation.getIdAttribute(), Lists.newArrayList(ids)))
133+
.withIds(stringIdsRepresentation(ids))
125134
.build();
126-
return elasticsearchOperations.queryForPage(query, getEntityClass());
135+
return elasticsearchOperations.multiGet(query, getEntityClass());
127136
}
128137

129138
@Override
@@ -302,6 +311,15 @@ protected ID extractIdFromBean(T entity) {
302311
return null;
303312
}
304313

314+
private List<String> stringIdsRepresentation(Iterable<ID> ids) {
315+
Assert.notNull(ids, "ids can't be null.");
316+
List<String> stringIds = new ArrayList<String>();
317+
for (ID id : ids) {
318+
stringIds.add(stringIdRepresentation(id));
319+
}
320+
return stringIds;
321+
}
322+
305323
protected abstract String stringIdRepresentation(ID id);
306324

307325
private Long extractVersionFromBean(T entity) {

0 commit comments

Comments
 (0)