DATAES-593 - Polishing.

This commit is contained in:
P.J.Meisch 2019-06-24 20:37:57 +02:00
parent 6567d17f23
commit 57ba74e543
5 changed files with 35 additions and 25 deletions

View File

@ -77,6 +77,7 @@ import org.springframework.util.Assert;
* @author Mark Paluch
* @author Farid Azaza
* @author Martin Choraine
* @author Peter-Josef Meisch
* @since 3.2
*/
public class ReactiveElasticsearchTemplate implements ReactiveElasticsearchOperations {
@ -264,8 +265,8 @@ public class ReactiveElasticsearchTemplate implements ReactiveElasticsearchOpera
searchSourceBuilder.fetchSource(query.getSourceFilter().getIncludes(), query.getSourceFilter().getExcludes());
}
if (query instanceof NativeSearchQuery && ((NativeSearchQuery) query).getCollapseBuilder() != null) {
searchSourceBuilder.collapse(((NativeSearchQuery) query).getCollapseBuilder());
if (query instanceof SearchQuery && ((SearchQuery) query).getCollapseBuilder() != null) {
searchSourceBuilder.collapse(((SearchQuery) query).getCollapseBuilder());
}
sort(query, entity).forEach(searchSourceBuilder::sort);

View File

@ -16,6 +16,7 @@
package org.springframework.data.elasticsearch.core.query;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.elasticsearch.index.query.QueryBuilder;
@ -25,8 +26,6 @@ import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
import org.elasticsearch.search.sort.SortBuilder;
import org.springframework.data.elasticsearch.core.facet.FacetRequest;
import java.util.Arrays;
/**
* NativeSearchQuery
*
@ -50,21 +49,26 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
private List<IndexBoost> indicesBoost;
public NativeSearchQuery(QueryBuilder query) {
this.query = query;
}
public NativeSearchQuery(QueryBuilder query, QueryBuilder filter) {
this.query = query;
this.filter = filter;
}
public NativeSearchQuery(QueryBuilder query, QueryBuilder filter, List<SortBuilder> sorts) {
this.query = query;
this.filter = filter;
this.sorts = sorts;
}
public NativeSearchQuery(QueryBuilder query, QueryBuilder filter, List<SortBuilder> sorts, HighlightBuilder.Field[] highlightFields) {
public NativeSearchQuery(QueryBuilder query, QueryBuilder filter, List<SortBuilder> sorts,
HighlightBuilder.Field[] highlightFields) {
this.query = query;
this.filter = filter;
this.sorts = sorts;
@ -73,6 +77,7 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
public NativeSearchQuery(QueryBuilder query, QueryBuilder filter, List<SortBuilder> sorts,
HighlightBuilder highlighBuilder, HighlightBuilder.Field[] highlightFields) {
this.query = query;
this.filter = filter;
this.sorts = sorts;
@ -102,16 +107,18 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
return highlightFields;
}
@Override
public List<ScriptField> getScriptFields() { return scriptFields; }
@Override
public List<ScriptField> getScriptFields() {
return scriptFields;
}
public void setScriptFields(List<ScriptField> scriptFields) {
this.scriptFields.addAll(scriptFields);
}
public void setScriptFields(List<ScriptField> scriptFields) {
this.scriptFields.addAll(scriptFields);
}
public void addScriptField(ScriptField... scriptField) {
scriptFields.addAll(Arrays.asList(scriptField));
}
public void addScriptField(ScriptField... scriptField) {
scriptFields.addAll(Arrays.asList(scriptField));
}
@Override
public CollapseBuilder getCollapseBuilder() {
@ -123,9 +130,11 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
}
public void addFacet(FacetRequest facetRequest) {
if (facets == null) {
facets = new ArrayList<>();
}
facets.add(facetRequest);
}
@ -144,9 +153,11 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
}
public void addAggregation(AbstractAggregationBuilder aggregationBuilder) {
if (aggregations == null) {
aggregations = new ArrayList<>();
}
aggregations.add(aggregationBuilder);
}

View File

@ -89,7 +89,7 @@ public class NativeSearchQueryBuilder {
return this;
}
public NativeSearchQueryBuilder withCollapse(String collapseField) {
public NativeSearchQueryBuilder withCollapseField(String collapseField) {
this.collapseBuilder = new CollapseBuilder(collapseField);
return this;
}

View File

@ -2843,7 +2843,7 @@ public class ElasticsearchTemplateTests {
elasticsearchTemplate.refresh(SampleEntity.class);
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withCollapse("rate").build();
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withCollapseField("rate").build();
// when
Page<SampleEntity> page = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);

View File

@ -24,8 +24,6 @@ import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
import reactor.core.publisher.Mono;
import reactor.test.StepVerifier;
@ -680,16 +678,16 @@ public class ReactiveElasticsearchTemplateTests {
entity3.setRate(1);
index(entity1, entity2, entity3);
SearchQuery query = new NativeSearchQueryBuilder()
.withIndices(DEFAULT_INDEX)
.withQuery(matchAllQuery())
.withCollapse("rate")
.withPageable(PageRequest.of(0, 25))
SearchQuery query = new NativeSearchQueryBuilder() //
.withIndices(DEFAULT_INDEX) //
.withQuery(matchAllQuery()) //
.withCollapseField("rate") //
.withPageable(PageRequest.of(0, 25)) //
.build();
template.find(query, SampleEntity.class)
.as(StepVerifier::create)
.expectNextCount(2)
template.find(query, SampleEntity.class) //
.as(StepVerifier::create) //
.expectNextCount(2) //
.verifyComplete();
}