DATAES-51 - allowed to pass multiple sort builders for NativeSearchQuery
Can now add multiple sort builders to a NativeSearchQuery
This commit is contained in:
committed by
Artur Konczak
parent
1352c9f45b
commit
eafdbed68e
@@ -57,6 +57,7 @@ import org.elasticsearch.index.query.QueryBuilders;
|
||||
import org.elasticsearch.search.SearchHit;
|
||||
import org.elasticsearch.search.facet.FacetBuilder;
|
||||
import org.elasticsearch.search.highlight.HighlightBuilder;
|
||||
import org.elasticsearch.search.sort.SortBuilder;
|
||||
import org.elasticsearch.search.sort.SortOrder;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Sort;
|
||||
@@ -451,8 +452,10 @@ public class ElasticsearchTemplate implements ElasticsearchOperations {
|
||||
searchRequest.setPostFilter(searchQuery.getFilter());
|
||||
}
|
||||
|
||||
if (searchQuery.getElasticsearchSort() != null) {
|
||||
searchRequest.addSort(searchQuery.getElasticsearchSort());
|
||||
if (CollectionUtils.isNotEmpty(searchQuery.getElasticsearchSorts())) {
|
||||
for (SortBuilder sort : searchQuery.getElasticsearchSorts()) {
|
||||
searchRequest.addSort(sort);
|
||||
}
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(searchQuery.getFacets())) {
|
||||
|
||||
@@ -35,7 +35,7 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
|
||||
|
||||
private QueryBuilder query;
|
||||
private FilterBuilder filter;
|
||||
private SortBuilder sort;
|
||||
private List<SortBuilder> sorts;
|
||||
private List<FacetRequest> facets;
|
||||
private HighlightBuilder.Field[] highlightFields;
|
||||
|
||||
@@ -49,16 +49,16 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
|
||||
this.filter = filter;
|
||||
}
|
||||
|
||||
public NativeSearchQuery(QueryBuilder query, FilterBuilder filter, SortBuilder sort) {
|
||||
public NativeSearchQuery(QueryBuilder query, FilterBuilder filter, List<SortBuilder> sorts) {
|
||||
this.query = query;
|
||||
this.filter = filter;
|
||||
this.sort = sort;
|
||||
this.sorts = sorts;
|
||||
}
|
||||
|
||||
public NativeSearchQuery(QueryBuilder query, FilterBuilder filter, SortBuilder sort, HighlightBuilder.Field[] highlightFields) {
|
||||
public NativeSearchQuery(QueryBuilder query, FilterBuilder filter, List<SortBuilder> sorts, HighlightBuilder.Field[] highlightFields) {
|
||||
this.query = query;
|
||||
this.filter = filter;
|
||||
this.sort = sort;
|
||||
this.sorts = sorts;
|
||||
this.highlightFields = highlightFields;
|
||||
}
|
||||
|
||||
@@ -70,8 +70,8 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
|
||||
return filter;
|
||||
}
|
||||
|
||||
public SortBuilder getElasticsearchSort() {
|
||||
return sort;
|
||||
public List<SortBuilder> getElasticsearchSorts() {
|
||||
return sorts;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -38,7 +38,7 @@ public class NativeSearchQueryBuilder {
|
||||
|
||||
private QueryBuilder queryBuilder;
|
||||
private FilterBuilder filterBuilder;
|
||||
private SortBuilder sortBuilder;
|
||||
private List<SortBuilder> sortBuilders = new ArrayList<SortBuilder>();
|
||||
private List<FacetRequest> facetRequests = new ArrayList<FacetRequest>();
|
||||
private HighlightBuilder.Field[] highlightFields;
|
||||
private Pageable pageable;
|
||||
@@ -58,7 +58,7 @@ public class NativeSearchQueryBuilder {
|
||||
}
|
||||
|
||||
public NativeSearchQueryBuilder withSort(SortBuilder sortBuilder) {
|
||||
this.sortBuilder = sortBuilder;
|
||||
this.sortBuilders.add(sortBuilder);
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ public class NativeSearchQueryBuilder {
|
||||
}
|
||||
|
||||
public NativeSearchQuery build() {
|
||||
NativeSearchQuery nativeSearchQuery = new NativeSearchQuery(queryBuilder, filterBuilder, sortBuilder, highlightFields);
|
||||
NativeSearchQuery nativeSearchQuery = new NativeSearchQuery(queryBuilder, filterBuilder, sortBuilders, highlightFields);
|
||||
if (pageable != null) {
|
||||
nativeSearchQuery.setPageable(pageable);
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ public interface SearchQuery extends Query {
|
||||
|
||||
FilterBuilder getFilter();
|
||||
|
||||
SortBuilder getElasticsearchSort();
|
||||
List<SortBuilder> getElasticsearchSorts();
|
||||
|
||||
List<FacetRequest> getFacets();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user