mirror of
https://github.com/spring-projects/spring-data-elasticsearch.git
synced 2025-06-08 13:12:10 +00:00
DATAES-593 - Polishing.
This commit is contained in:
parent
6567d17f23
commit
57ba74e543
@ -77,6 +77,7 @@ import org.springframework.util.Assert;
|
|||||||
* @author Mark Paluch
|
* @author Mark Paluch
|
||||||
* @author Farid Azaza
|
* @author Farid Azaza
|
||||||
* @author Martin Choraine
|
* @author Martin Choraine
|
||||||
|
* @author Peter-Josef Meisch
|
||||||
* @since 3.2
|
* @since 3.2
|
||||||
*/
|
*/
|
||||||
public class ReactiveElasticsearchTemplate implements ReactiveElasticsearchOperations {
|
public class ReactiveElasticsearchTemplate implements ReactiveElasticsearchOperations {
|
||||||
@ -264,8 +265,8 @@ public class ReactiveElasticsearchTemplate implements ReactiveElasticsearchOpera
|
|||||||
searchSourceBuilder.fetchSource(query.getSourceFilter().getIncludes(), query.getSourceFilter().getExcludes());
|
searchSourceBuilder.fetchSource(query.getSourceFilter().getIncludes(), query.getSourceFilter().getExcludes());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (query instanceof NativeSearchQuery && ((NativeSearchQuery) query).getCollapseBuilder() != null) {
|
if (query instanceof SearchQuery && ((SearchQuery) query).getCollapseBuilder() != null) {
|
||||||
searchSourceBuilder.collapse(((NativeSearchQuery) query).getCollapseBuilder());
|
searchSourceBuilder.collapse(((SearchQuery) query).getCollapseBuilder());
|
||||||
}
|
}
|
||||||
|
|
||||||
sort(query, entity).forEach(searchSourceBuilder::sort);
|
sort(query, entity).forEach(searchSourceBuilder::sort);
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
package org.springframework.data.elasticsearch.core.query;
|
package org.springframework.data.elasticsearch.core.query;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.elasticsearch.index.query.QueryBuilder;
|
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.elasticsearch.search.sort.SortBuilder;
|
||||||
import org.springframework.data.elasticsearch.core.facet.FacetRequest;
|
import org.springframework.data.elasticsearch.core.facet.FacetRequest;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NativeSearchQuery
|
* NativeSearchQuery
|
||||||
*
|
*
|
||||||
@ -50,21 +49,26 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
|
|||||||
private List<IndexBoost> indicesBoost;
|
private List<IndexBoost> indicesBoost;
|
||||||
|
|
||||||
public NativeSearchQuery(QueryBuilder query) {
|
public NativeSearchQuery(QueryBuilder query) {
|
||||||
|
|
||||||
this.query = query;
|
this.query = query;
|
||||||
}
|
}
|
||||||
|
|
||||||
public NativeSearchQuery(QueryBuilder query, QueryBuilder filter) {
|
public NativeSearchQuery(QueryBuilder query, QueryBuilder filter) {
|
||||||
|
|
||||||
this.query = query;
|
this.query = query;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public NativeSearchQuery(QueryBuilder query, QueryBuilder filter, List<SortBuilder> sorts) {
|
public NativeSearchQuery(QueryBuilder query, QueryBuilder filter, List<SortBuilder> sorts) {
|
||||||
|
|
||||||
this.query = query;
|
this.query = query;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.sorts = sorts;
|
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.query = query;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.sorts = sorts;
|
this.sorts = sorts;
|
||||||
@ -73,6 +77,7 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
|
|||||||
|
|
||||||
public NativeSearchQuery(QueryBuilder query, QueryBuilder filter, List<SortBuilder> sorts,
|
public NativeSearchQuery(QueryBuilder query, QueryBuilder filter, List<SortBuilder> sorts,
|
||||||
HighlightBuilder highlighBuilder, HighlightBuilder.Field[] highlightFields) {
|
HighlightBuilder highlighBuilder, HighlightBuilder.Field[] highlightFields) {
|
||||||
|
|
||||||
this.query = query;
|
this.query = query;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.sorts = sorts;
|
this.sorts = sorts;
|
||||||
@ -103,7 +108,9 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<ScriptField> getScriptFields() { return scriptFields; }
|
public List<ScriptField> getScriptFields() {
|
||||||
|
return scriptFields;
|
||||||
|
}
|
||||||
|
|
||||||
public void setScriptFields(List<ScriptField> scriptFields) {
|
public void setScriptFields(List<ScriptField> scriptFields) {
|
||||||
this.scriptFields.addAll(scriptFields);
|
this.scriptFields.addAll(scriptFields);
|
||||||
@ -123,9 +130,11 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void addFacet(FacetRequest facetRequest) {
|
public void addFacet(FacetRequest facetRequest) {
|
||||||
|
|
||||||
if (facets == null) {
|
if (facets == null) {
|
||||||
facets = new ArrayList<>();
|
facets = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
facets.add(facetRequest);
|
facets.add(facetRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -144,9 +153,11 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void addAggregation(AbstractAggregationBuilder aggregationBuilder) {
|
public void addAggregation(AbstractAggregationBuilder aggregationBuilder) {
|
||||||
|
|
||||||
if (aggregations == null) {
|
if (aggregations == null) {
|
||||||
aggregations = new ArrayList<>();
|
aggregations = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
aggregations.add(aggregationBuilder);
|
aggregations.add(aggregationBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ public class NativeSearchQueryBuilder {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public NativeSearchQueryBuilder withCollapse(String collapseField) {
|
public NativeSearchQueryBuilder withCollapseField(String collapseField) {
|
||||||
this.collapseBuilder = new CollapseBuilder(collapseField);
|
this.collapseBuilder = new CollapseBuilder(collapseField);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@ -2843,7 +2843,7 @@ public class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
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
|
// when
|
||||||
Page<SampleEntity> page = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
Page<SampleEntity> page = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
||||||
|
@ -24,8 +24,6 @@ import lombok.Builder;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import org.springframework.data.domain.Page;
|
|
||||||
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
|
|
||||||
import reactor.core.publisher.Mono;
|
import reactor.core.publisher.Mono;
|
||||||
import reactor.test.StepVerifier;
|
import reactor.test.StepVerifier;
|
||||||
|
|
||||||
@ -680,16 +678,16 @@ public class ReactiveElasticsearchTemplateTests {
|
|||||||
entity3.setRate(1);
|
entity3.setRate(1);
|
||||||
index(entity1, entity2, entity3);
|
index(entity1, entity2, entity3);
|
||||||
|
|
||||||
SearchQuery query = new NativeSearchQueryBuilder()
|
SearchQuery query = new NativeSearchQueryBuilder() //
|
||||||
.withIndices(DEFAULT_INDEX)
|
.withIndices(DEFAULT_INDEX) //
|
||||||
.withQuery(matchAllQuery())
|
.withQuery(matchAllQuery()) //
|
||||||
.withCollapse("rate")
|
.withCollapseField("rate") //
|
||||||
.withPageable(PageRequest.of(0, 25))
|
.withPageable(PageRequest.of(0, 25)) //
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
template.find(query, SampleEntity.class)
|
template.find(query, SampleEntity.class) //
|
||||||
.as(StepVerifier::create)
|
.as(StepVerifier::create) //
|
||||||
.expectNextCount(2)
|
.expectNextCount(2) //
|
||||||
.verifyComplete();
|
.verifyComplete();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user