DATAES-13 added support for minimum score

This commit is contained in:
Artur Konczak
2014-01-29 22:06:45 +00:00
parent 6c5e8fee22
commit bbc46d95df
8 changed files with 158 additions and 0 deletions

View File

@@ -210,6 +210,10 @@ public class ElasticsearchTemplate implements ElasticsearchOperations {
searchRequestBuilder.setQuery(QueryBuilders.matchAllQuery());
}
if(criteriaQuery.getMinScore()>0){
searchRequestBuilder.setMinScore(criteriaQuery.getMinScore());
}
if (elasticsearchFilter != null)
searchRequestBuilder.setFilter(elasticsearchFilter);
@@ -520,6 +524,10 @@ public class ElasticsearchTemplate implements ElasticsearchOperations {
: SortOrder.ASC);
}
}
if(query.getMinScore()>0){
searchRequestBuilder.setMinScore(query.getMinScore());
}
return searchRequestBuilder;
}

View File

@@ -37,6 +37,7 @@ abstract class AbstractQuery implements Query {
protected List<String> indices = new ArrayList<String>();
protected List<String> types = new ArrayList<String>();
protected List<String> fields = new ArrayList<String>();
protected float minScore;
@Override
public Sort getSort() {
@@ -99,4 +100,12 @@ abstract class AbstractQuery implements Query {
return (T) this;
}
public float getMinScore() {
return minScore;
}
public void setMinScore(float minScore) {
this.minScore = minScore;
}
}

View File

@@ -16,6 +16,7 @@
package org.springframework.data.elasticsearch.core.query;
import org.apache.commons.collections.CollectionUtils;
import org.elasticsearch.common.cache.CacheBuilder;
import org.elasticsearch.index.query.FilterBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.search.highlight.HighlightBuilder;
@@ -45,6 +46,7 @@ public class NativeSearchQueryBuilder {
private String[] indices;
private String[] types;
private String[] fields;
private float minScore;
public NativeSearchQueryBuilder withQuery(QueryBuilder queryBuilder) {
this.queryBuilder = queryBuilder;
@@ -91,6 +93,11 @@ public class NativeSearchQueryBuilder {
return this;
}
public NativeSearchQueryBuilder withMinScore(float minScore) {
this.minScore = minScore;
return this;
}
public NativeSearchQuery build() {
NativeSearchQuery nativeSearchQuery = new NativeSearchQuery(queryBuilder, filterBuilder, sortBuilder, highlightFields);
if (pageable != null) {
@@ -108,6 +115,10 @@ public class NativeSearchQueryBuilder {
if (CollectionUtils.isNotEmpty(facetRequests)) {
nativeSearchQuery.setFacets(facetRequests);
}
if(minScore>0){
nativeSearchQuery.setMinScore(minScore);
}
return nativeSearchQuery;
}
}

View File

@@ -108,4 +108,10 @@ public interface Query {
* @return
*/
List<String> getFields();
/**
* Get minimum score
* @return
*/
float getMinScore();
}