Native query with ext section for SearchPlugin.

Original Pull Request #2064 
Closes #2065
This commit is contained in:
Onizuka 2022-01-19 03:17:18 +08:00 committed by GitHub
parent 3c060d8891
commit 056a4a76e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 0 deletions

View File

@ -111,6 +111,7 @@ import org.springframework.util.StringUtils;
* @author Subhobrata Dey * @author Subhobrata Dey
* @author Farid Faoudi * @author Farid Faoudi
* @author Peer Mueller * @author Peer Mueller
* @author Sijia Liu
* @since 4.0 * @since 4.0
*/ */
class RequestFactory { class RequestFactory {
@ -772,6 +773,10 @@ class RequestFactory {
if (query.getSuggestBuilder() != null) { if (query.getSuggestBuilder() != null) {
sourceBuilder.suggest(query.getSuggestBuilder()); sourceBuilder.suggest(query.getSuggestBuilder());
} }
if (!isEmpty(query.getSearchExtBuilders())) {
sourceBuilder.ext(query.getSearchExtBuilders());
}
} }
@SuppressWarnings("rawtypes") @SuppressWarnings("rawtypes")

View File

@ -21,6 +21,7 @@ import java.util.List;
import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.script.mustache.SearchTemplateRequestBuilder; import org.elasticsearch.script.mustache.SearchTemplateRequestBuilder;
import org.elasticsearch.search.SearchExtBuilder;
import org.elasticsearch.search.aggregations.AbstractAggregationBuilder; import org.elasticsearch.search.aggregations.AbstractAggregationBuilder;
import org.elasticsearch.search.aggregations.PipelineAggregationBuilder; import org.elasticsearch.search.aggregations.PipelineAggregationBuilder;
import org.elasticsearch.search.collapse.CollapseBuilder; import org.elasticsearch.search.collapse.CollapseBuilder;
@ -41,6 +42,7 @@ import org.springframework.lang.Nullable;
* @author Jean-Baptiste Nizet * @author Jean-Baptiste Nizet
* @author Martin Choraine * @author Martin Choraine
* @author Peter-Josef Meisch * @author Peter-Josef Meisch
* @author Sijia Liu
*/ */
public class NativeSearchQuery extends BaseQuery { public class NativeSearchQuery extends BaseQuery {
@ -56,6 +58,7 @@ public class NativeSearchQuery extends BaseQuery {
@Nullable private List<IndexBoost> indicesBoost; @Nullable private List<IndexBoost> indicesBoost;
@Nullable private SearchTemplateRequestBuilder searchTemplate; @Nullable private SearchTemplateRequestBuilder searchTemplate;
@Nullable private SuggestBuilder suggestBuilder; @Nullable private SuggestBuilder suggestBuilder;
@Nullable private List<SearchExtBuilder> searchExtBuilders;
public NativeSearchQuery(@Nullable QueryBuilder query) { public NativeSearchQuery(@Nullable QueryBuilder query) {
@ -201,4 +204,20 @@ public class NativeSearchQuery extends BaseQuery {
public SuggestBuilder getSuggestBuilder() { public SuggestBuilder getSuggestBuilder() {
return suggestBuilder; return suggestBuilder;
} }
public void setSearchExtBuilders(List<SearchExtBuilder> searchExtBuilders) {
this.searchExtBuilders = searchExtBuilders;
}
public void addSearchExtBuilder(SearchExtBuilder searchExtBuilder) {
if (searchExtBuilders == null) {
searchExtBuilders = new ArrayList<>();
}
searchExtBuilders.add(searchExtBuilder);
}
@Nullable
public List<SearchExtBuilder> getSearchExtBuilders() {
return searchExtBuilders;
}
} }