mirror of
https://github.com/spring-projects/spring-data-elasticsearch.git
synced 2025-06-22 12:02:10 +00:00
Added support for searchSimilar in ElasticsearchRepository
https://github.com/BioMedCentralLtd/spring-data-elasticsearch/issues/4
This commit is contained in:
parent
41de820c70
commit
c78bfc0f5c
@ -33,8 +33,6 @@ import static org.apache.commons.collections.CollectionUtils.addAll;
|
||||
*/
|
||||
abstract class AbstractQuery implements Query{
|
||||
|
||||
private static final Pageable DEFAULT_PAGE = new PageRequest(0, DEFAULT_PAGE_SIZE);
|
||||
|
||||
protected Pageable pageable = DEFAULT_PAGE;
|
||||
protected Sort sort;
|
||||
protected List<String> indices = new ArrayList<String>();
|
||||
|
@ -16,14 +16,13 @@
|
||||
|
||||
package org.springframework.data.elasticsearch.core.query;
|
||||
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static org.apache.commons.collections.CollectionUtils.addAll;
|
||||
import static org.springframework.data.elasticsearch.core.query.Query.DEFAULT_PAGE_SIZE;
|
||||
import static org.springframework.data.elasticsearch.core.query.Query.DEFAULT_PAGE;
|
||||
|
||||
/**
|
||||
* MoreLikeThisQuery
|
||||
@ -50,7 +49,7 @@ public class MoreLikeThisQuery {
|
||||
private Integer minWordLen;
|
||||
private Integer maxWordLen;
|
||||
private Float boostTerms;
|
||||
private Pageable pageable = new PageRequest(0, DEFAULT_PAGE_SIZE);
|
||||
private Pageable pageable = DEFAULT_PAGE;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
|
@ -17,6 +17,7 @@
|
||||
package org.springframework.data.elasticsearch.core.query;
|
||||
|
||||
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.domain.Sort;
|
||||
|
||||
@ -29,7 +30,8 @@ import java.util.List;
|
||||
*/
|
||||
public interface Query {
|
||||
|
||||
int DEFAULT_PAGE_SIZE = 10;
|
||||
public static final int DEFAULT_PAGE_SIZE = 10;
|
||||
public static final Pageable DEFAULT_PAGE = new PageRequest(0, DEFAULT_PAGE_SIZE);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -42,4 +42,6 @@ public interface ElasticsearchRepository<T, ID extends Serializable> extends Ela
|
||||
Page<T> search(SearchQuery searchQuery);
|
||||
|
||||
Page<T> searchSimilar(T entity);
|
||||
|
||||
Page<T> searchSimilar(T entity, Pageable pageable);
|
||||
}
|
||||
|
@ -32,6 +32,7 @@ import java.util.List;
|
||||
|
||||
import static org.elasticsearch.index.query.QueryBuilders.inQuery;
|
||||
import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;
|
||||
import static org.springframework.data.elasticsearch.core.query.Query.DEFAULT_PAGE;
|
||||
|
||||
/**
|
||||
* Elasticsearch specific repository implementation. Likely to be used as target within {@link ElasticsearchRepositoryFactory}
|
||||
@ -185,12 +186,20 @@ public class SimpleElasticsearchRepository<T> implements ElasticsearchRepository
|
||||
|
||||
@Override
|
||||
public Page<T> searchSimilar(T entity) {
|
||||
return searchSimilar(entity, DEFAULT_PAGE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<T> searchSimilar(T entity, Pageable pageable) {
|
||||
Assert.notNull(entity, "Cannot search similar records for 'null'.");
|
||||
Assert.notNull(entity, "Pageable cannot be 'null'");
|
||||
MoreLikeThisQuery query = new MoreLikeThisQuery();
|
||||
query.setId(extractIdFromBean(entity));
|
||||
query.setPageable(pageable);
|
||||
return elasticsearchOperations.moreLikeThis(query, getEntityClass());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void delete(String id) {
|
||||
Assert.notNull(id, "Cannot delete entity with id 'null'.");
|
||||
|
Loading…
x
Reference in New Issue
Block a user