mirror of
https://github.com/spring-projects/spring-data-elasticsearch.git
synced 2025-06-29 15:22:11 +00:00
DATAES-216 - Adding support to 'indices_boost' when searching against multiple indices
Applying spring-data code format Merge branch 'master' of https://github.com/thiagolocatelli/spring-data-elasticsearch into thiagolocatelli-master
This commit is contained in:
parent
9c91723833
commit
ba1fb9fc6f
@ -864,6 +864,12 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (searchQuery.getIndicesBoost() != null) {
|
||||||
|
for (IndexBoost indexBoost : searchQuery.getIndicesBoost()) {
|
||||||
|
searchRequest.addIndexBoost(indexBoost.getIndexName(), indexBoost.getBoost());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (CollectionUtils.isNotEmpty(searchQuery.getAggregations())) {
|
if (CollectionUtils.isNotEmpty(searchQuery.getAggregations())) {
|
||||||
for (AbstractAggregationBuilder aggregationBuilder : searchQuery.getAggregations()) {
|
for (AbstractAggregationBuilder aggregationBuilder : searchQuery.getAggregations()) {
|
||||||
searchRequest.addAggregation(aggregationBuilder);
|
searchRequest.addAggregation(aggregationBuilder);
|
||||||
|
@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2016 the original author or authors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.springframework.data.elasticsearch.core.query;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines a IndexBoost to be applied on the "indices_boost" query clause
|
||||||
|
*
|
||||||
|
* @author Thiago Locatelli
|
||||||
|
*/
|
||||||
|
public class IndexBoost {
|
||||||
|
|
||||||
|
private String indexName;
|
||||||
|
private float boost;
|
||||||
|
|
||||||
|
public IndexBoost(String indexName, float boost) {
|
||||||
|
this.indexName = indexName;
|
||||||
|
this.boost = boost;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIndexName() {
|
||||||
|
return indexName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getBoost() {
|
||||||
|
return boost;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2013 the original author or authors.
|
* Copyright 2013-2016 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -45,6 +45,7 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
|
|||||||
private List<FacetRequest> facets;
|
private List<FacetRequest> facets;
|
||||||
private List<AbstractAggregationBuilder> aggregations;
|
private List<AbstractAggregationBuilder> aggregations;
|
||||||
private HighlightBuilder.Field[] highlightFields;
|
private HighlightBuilder.Field[] highlightFields;
|
||||||
|
private IndexBoost[] indicesBoost;
|
||||||
|
|
||||||
|
|
||||||
public NativeSearchQuery(QueryBuilder query) {
|
public NativeSearchQuery(QueryBuilder query) {
|
||||||
@ -129,4 +130,14 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
|
|||||||
public void setAggregations(List<AbstractAggregationBuilder> aggregations) {
|
public void setAggregations(List<AbstractAggregationBuilder> aggregations) {
|
||||||
this.aggregations = aggregations;
|
this.aggregations = aggregations;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IndexBoost[] getIndicesBoost() {
|
||||||
|
return indicesBoost;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIndicesBoost(IndexBoost... indicesBoost) {
|
||||||
|
this.indicesBoost = indicesBoost;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2013-2014 the original author or authors.
|
* Copyright 2013-2016 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -50,6 +50,7 @@ public class NativeSearchQueryBuilder {
|
|||||||
private String[] indices;
|
private String[] indices;
|
||||||
private String[] types;
|
private String[] types;
|
||||||
private String[] fields;
|
private String[] fields;
|
||||||
|
private IndexBoost[] indicesBoost;
|
||||||
private float minScore;
|
private float minScore;
|
||||||
private Collection<String> ids;
|
private Collection<String> ids;
|
||||||
private String route;
|
private String route;
|
||||||
@ -90,6 +91,11 @@ public class NativeSearchQueryBuilder {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public NativeSearchQueryBuilder withIndicesBoost(IndexBoost... indicesBoost) {
|
||||||
|
this.indicesBoost = indicesBoost;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public NativeSearchQueryBuilder withPageable(Pageable pageable) {
|
public NativeSearchQueryBuilder withPageable(Pageable pageable) {
|
||||||
this.pageable = pageable;
|
this.pageable = pageable;
|
||||||
return this;
|
return this;
|
||||||
@ -147,6 +153,11 @@ public class NativeSearchQueryBuilder {
|
|||||||
if (fields != null) {
|
if (fields != null) {
|
||||||
nativeSearchQuery.addFields(fields);
|
nativeSearchQuery.addFields(fields);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(indicesBoost != null) {
|
||||||
|
nativeSearchQuery.setIndicesBoost(indicesBoost);
|
||||||
|
}
|
||||||
|
|
||||||
if (CollectionUtils.isNotEmpty(scriptFields)) {
|
if (CollectionUtils.isNotEmpty(scriptFields)) {
|
||||||
nativeSearchQuery.setScriptFields(scriptFields);
|
nativeSearchQuery.setScriptFields(scriptFields);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2013 the original author or authors.
|
* Copyright 2013-2016 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -45,6 +45,8 @@ public interface SearchQuery extends Query {
|
|||||||
|
|
||||||
HighlightBuilder.Field[] getHighlightFields();
|
HighlightBuilder.Field[] getHighlightFields();
|
||||||
|
|
||||||
|
IndexBoost[] getIndicesBoost();
|
||||||
|
|
||||||
List<ScriptField> getScriptFields();
|
List<ScriptField> getScriptFields();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user