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:
Thiago Locatelli 2015-11-26 11:09:33 -05:00 committed by Mohsin Husen
parent 9c91723833
commit ba1fb9fc6f
5 changed files with 75 additions and 3 deletions

View File

@ -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())) {
for (AbstractAggregationBuilder aggregationBuilder : searchQuery.getAggregations()) {
searchRequest.addAggregation(aggregationBuilder);

View File

@ -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;
}
}

View File

@ -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");
* 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<AbstractAggregationBuilder> aggregations;
private HighlightBuilder.Field[] highlightFields;
private IndexBoost[] indicesBoost;
public NativeSearchQuery(QueryBuilder query) {
@ -129,4 +130,14 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
public void setAggregations(List<AbstractAggregationBuilder> aggregations) {
this.aggregations = aggregations;
}
@Override
public IndexBoost[] getIndicesBoost() {
return indicesBoost;
}
public void setIndicesBoost(IndexBoost... indicesBoost) {
this.indicesBoost = indicesBoost;
}
}

View File

@ -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");
* you may not use this file except in compliance with the License.
@ -50,6 +50,7 @@ public class NativeSearchQueryBuilder {
private String[] indices;
private String[] types;
private String[] fields;
private IndexBoost[] indicesBoost;
private float minScore;
private Collection<String> ids;
private String route;
@ -90,6 +91,11 @@ public class NativeSearchQueryBuilder {
return this;
}
public NativeSearchQueryBuilder withIndicesBoost(IndexBoost... indicesBoost) {
this.indicesBoost = indicesBoost;
return this;
}
public NativeSearchQueryBuilder withPageable(Pageable pageable) {
this.pageable = pageable;
return this;
@ -147,6 +153,11 @@ public class NativeSearchQueryBuilder {
if (fields != null) {
nativeSearchQuery.addFields(fields);
}
if(indicesBoost != null) {
nativeSearchQuery.setIndicesBoost(indicesBoost);
}
if (CollectionUtils.isNotEmpty(scriptFields)) {
nativeSearchQuery.setScriptFields(scriptFields);
}

View File

@ -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");
* you may not use this file except in compliance with the License.
@ -45,6 +45,8 @@ public interface SearchQuery extends Query {
HighlightBuilder.Field[] getHighlightFields();
IndexBoost[] getIndicesBoost();
List<ScriptField> getScriptFields();
}