mirror of
https://github.com/spring-projects/spring-data-elasticsearch.git
synced 2025-06-28 14:52:20 +00:00
removed ambiguity for save method in repositories & fixed the Pageable issue for searchSimilar methods
This commit is contained in:
parent
afc6349dec
commit
41fe0bed42
@ -29,6 +29,4 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public interface ElasticsearchCrudRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID> {
|
public interface ElasticsearchCrudRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID> {
|
||||||
|
|
||||||
<S extends T> List<S> save(List<S> entities);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -42,5 +42,5 @@ public interface ElasticsearchRepository<T, ID extends Serializable> extends Ela
|
|||||||
|
|
||||||
FacetedPage<T> search(SearchQuery searchQuery);
|
FacetedPage<T> search(SearchQuery searchQuery);
|
||||||
|
|
||||||
Page<T> searchSimilar(T entity, SearchQuery searchQuery);
|
Page<T> searchSimilar(T entity,String[] fields, Pageable pageable);
|
||||||
}
|
}
|
||||||
|
@ -192,18 +192,14 @@ public abstract class AbstractElasticsearchRepository<T, ID extends Serializable
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<T> searchSimilar(T entity, SearchQuery searchQuery) {
|
public Page<T> searchSimilar(T entity, String[] fields, Pageable pageable) {
|
||||||
Assert.notNull(entity, "Cannot search similar records for 'null'.");
|
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();
|
MoreLikeThisQuery query = new MoreLikeThisQuery();
|
||||||
query.setId(stringIdRepresentation(extractIdFromBean(entity)));
|
query.setId(stringIdRepresentation(extractIdFromBean(entity)));
|
||||||
query.setPageable(searchQuery.getPageable() != null ? searchQuery.getPageable() : DEFAULT_PAGE);
|
query.setPageable(pageable);
|
||||||
query.addFields(searchQuery.getFields().toArray(new String[searchQuery.getFields().size()]));
|
if(fields != null){
|
||||||
if (!searchQuery.getIndices().isEmpty()) {
|
query.addFields(fields);
|
||||||
query.addSearchIndices(searchQuery.getIndices().toArray(new String[searchQuery.getIndices().size()]));
|
|
||||||
}
|
|
||||||
if (!searchQuery.getTypes().isEmpty()) {
|
|
||||||
query.addSearchTypes(searchQuery.getTypes().toArray(new String[searchQuery.getTypes().size()]));
|
|
||||||
}
|
}
|
||||||
return elasticsearchOperations.moreLikeThis(query, getEntityClass());
|
return elasticsearchOperations.moreLikeThis(query, getEntityClass());
|
||||||
}
|
}
|
||||||
|
@ -398,9 +398,7 @@ public class SimpleElasticsearchRepositoryTests {
|
|||||||
repository.save(sampleEntities);
|
repository.save(sampleEntities);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withPageable(new PageRequest(0, 5)).withFields("message")
|
Page<SampleEntity> results = repository.searchSimilar(sampleEntities.get(0), new String[]{"message"} ,new PageRequest(0, 5));
|
||||||
.build();
|
|
||||||
Page<SampleEntity> results = repository.searchSimilar(sampleEntities.get(0), searchQuery);
|
|
||||||
|
|
||||||
// then
|
// then
|
||||||
assertThat(results.getTotalElements(), is(greaterThanOrEqualTo(1L)));
|
assertThat(results.getTotalElements(), is(greaterThanOrEqualTo(1L)));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user