From edaa65dba2cab40aa5f7631438c5a2b2609e5d15 Mon Sep 17 00:00:00 2001 From: Shay Banon Date: Sat, 10 Nov 2012 14:59:45 +0100 Subject: [PATCH] Multi Match: Wrongly defaults to dis_max instead of bool fixes #2397 --- .../elasticsearch/index/query/MultiMatchQueryParser.java | 4 +--- .../org/elasticsearch/index/search/MultiMatchQuery.java | 7 +++---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/elasticsearch/index/query/MultiMatchQueryParser.java b/src/main/java/org/elasticsearch/index/query/MultiMatchQueryParser.java index e3611532ada..dd28635bf8a 100644 --- a/src/main/java/org/elasticsearch/index/query/MultiMatchQueryParser.java +++ b/src/main/java/org/elasticsearch/index/query/MultiMatchQueryParser.java @@ -19,7 +19,6 @@ package org.elasticsearch.index.query; -import com.google.common.collect.Lists; import com.google.common.collect.Maps; import org.apache.lucene.search.BooleanClause; import org.apache.lucene.search.BooleanQuery; @@ -33,7 +32,6 @@ import org.elasticsearch.index.search.MatchQuery; import org.elasticsearch.index.search.MultiMatchQuery; import java.io.IOException; -import java.util.List; import java.util.Map; /** @@ -146,7 +144,7 @@ public class MultiMatchQueryParser implements QueryParser { } else if ("use_dis_max".equals(currentFieldName) || "useDisMax".equals(currentFieldName)) { multiMatchQuery.setUseDisMax(parser.booleanValue()); } else if ("tie_breaker".equals(currentFieldName) || "tieBreaker".equals(currentFieldName)) { - multiMatchQuery.setTieBreaker(parser.intValue()); + multiMatchQuery.setTieBreaker(parser.floatValue()); } else if ("lenient".equals(currentFieldName)) { multiMatchQuery.setLenient(parser.booleanValue()); } else { diff --git a/src/main/java/org/elasticsearch/index/search/MultiMatchQuery.java b/src/main/java/org/elasticsearch/index/search/MultiMatchQuery.java index 3b7cb183e51..515a8069e81 100644 --- a/src/main/java/org/elasticsearch/index/search/MultiMatchQuery.java +++ b/src/main/java/org/elasticsearch/index/search/MultiMatchQuery.java @@ -25,19 +25,18 @@ import org.apache.lucene.search.DisjunctionMaxQuery; import org.apache.lucene.search.Query; import org.elasticsearch.index.query.QueryParseContext; -import java.util.List; import java.util.Map; public class MultiMatchQuery extends MatchQuery { private boolean useDisMax = true; - private int tieBreaker; + private float tieBreaker; public void setUseDisMax(boolean useDisMax) { this.useDisMax = useDisMax; } - public void setTieBreaker(int tieBreaker) { + public void setTieBreaker(float tieBreaker) { this.tieBreaker = tieBreaker; } @@ -85,7 +84,7 @@ public class MultiMatchQuery extends MatchQuery { booleanQuery.add(query, BooleanClause.Occur.SHOULD); } } - return !booleanQuery.clauses().isEmpty() ? booleanQuery : null; + return !booleanQuery.clauses().isEmpty() ? booleanQuery : null; } }