From 41fe0bed4297fbd7ec626eca4e92be4a3721ae3a Mon Sep 17 00:00:00 2001 From: Rizwan Idrees Date: Thu, 26 Dec 2013 21:33:12 +0000 Subject: [PATCH] removed ambiguity for save method in repositories & fixed the Pageable issue for searchSimilar methods --- .../ElasticsearchCrudRepository.java | 2 -- .../repository/ElasticsearchRepository.java | 2 +- .../AbstractElasticsearchRepository.java | 20 ++++++++----------- .../SimpleElasticsearchRepositoryTests.java | 4 +--- 4 files changed, 10 insertions(+), 18 deletions(-) diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/ElasticsearchCrudRepository.java b/src/main/java/org/springframework/data/elasticsearch/repository/ElasticsearchCrudRepository.java index 617c921bc..1273d0b50 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/ElasticsearchCrudRepository.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/ElasticsearchCrudRepository.java @@ -29,6 +29,4 @@ import java.util.List; */ public interface ElasticsearchCrudRepository extends PagingAndSortingRepository { - List save(List entities); - } diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/ElasticsearchRepository.java b/src/main/java/org/springframework/data/elasticsearch/repository/ElasticsearchRepository.java index 3ea082862..978127aa7 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/ElasticsearchRepository.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/ElasticsearchRepository.java @@ -42,5 +42,5 @@ public interface ElasticsearchRepository extends Ela FacetedPage search(SearchQuery searchQuery); - Page searchSimilar(T entity, SearchQuery searchQuery); + Page searchSimilar(T entity,String[] fields, Pageable pageable); } diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/support/AbstractElasticsearchRepository.java b/src/main/java/org/springframework/data/elasticsearch/repository/support/AbstractElasticsearchRepository.java index 6a3868f8b..d283ce3fc 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/support/AbstractElasticsearchRepository.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/support/AbstractElasticsearchRepository.java @@ -39,8 +39,8 @@ import static org.springframework.data.elasticsearch.core.query.Query.DEFAULT_PA /** * Elasticsearch specific repository implementation. Likely to be used as target within * {@link ElasticsearchRepositoryFactory} - * - * + * + * * @author Rizwan Idrees * @author Mohsin Husen * @author Ryan Henszey @@ -192,19 +192,15 @@ public abstract class AbstractElasticsearchRepository searchSimilar(T entity, SearchQuery searchQuery) { + public Page searchSimilar(T entity, String[] fields, Pageable pageable) { Assert.notNull(entity, "Cannot search similar records for 'null'."); - Assert.notNull(searchQuery.getFields(), "Fields cannot be 'null'"); + Assert.notNull(pageable, "'pageable' cannot be 'null'"); MoreLikeThisQuery query = new MoreLikeThisQuery(); query.setId(stringIdRepresentation(extractIdFromBean(entity))); - query.setPageable(searchQuery.getPageable() != null ? searchQuery.getPageable() : DEFAULT_PAGE); - query.addFields(searchQuery.getFields().toArray(new String[searchQuery.getFields().size()])); - if (!searchQuery.getIndices().isEmpty()) { - query.addSearchIndices(searchQuery.getIndices().toArray(new String[searchQuery.getIndices().size()])); - } - if (!searchQuery.getTypes().isEmpty()) { - query.addSearchTypes(searchQuery.getTypes().toArray(new String[searchQuery.getTypes().size()])); - } + query.setPageable(pageable); + if(fields != null){ + query.addFields(fields); + } return elasticsearchOperations.moreLikeThis(query, getEntityClass()); } diff --git a/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepositoryTests.java index e109c5e57..14c7ec306 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepositoryTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepositoryTests.java @@ -398,9 +398,7 @@ public class SimpleElasticsearchRepositoryTests { repository.save(sampleEntities); // when - SearchQuery searchQuery = new NativeSearchQueryBuilder().withPageable(new PageRequest(0, 5)).withFields("message") - .build(); - Page results = repository.searchSimilar(sampleEntities.get(0), searchQuery); + Page results = repository.searchSimilar(sampleEntities.get(0), new String[]{"message"} ,new PageRequest(0, 5)); // then assertThat(results.getTotalElements(), is(greaterThanOrEqualTo(1L)));