You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ja...@apache.org on 2013/05/28 14:15:37 UTC
svn commit: r1486901 - in /lucene/dev/branches/branch_4x: ./ solr/
solr/core/ solr/core/src/java/org/apache/solr/search/MaxScoreQParser.java
solr/core/src/test/org/apache/solr/search/TestMaxScoreQueryParser.java
Author: janhoy
Date: Tue May 28 12:15:37 2013
New Revision: 1486901
URL: http://svn.apache.org/r1486901
Log:
SOLR-4785: Fixed bug with missing boost on toplevel query (merge from trunk)
Modified:
lucene/dev/branches/branch_4x/ (props changed)
lucene/dev/branches/branch_4x/solr/ (props changed)
lucene/dev/branches/branch_4x/solr/core/ (props changed)
lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/search/MaxScoreQParser.java
lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestMaxScoreQueryParser.java
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/search/MaxScoreQParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/search/MaxScoreQParser.java?rev=1486901&r1=1486900&r2=1486901&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/search/MaxScoreQParser.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/search/MaxScoreQParser.java Tue May 28 12:15:37 2013
@@ -78,6 +78,7 @@ public class MaxScoreQParser extends Luc
for(BooleanClause c : prohibOrReq) {
newq.add(c);
}
+ newq.setBoost(obq.getBoost());
return newq;
}
}
\ No newline at end of file
Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestMaxScoreQueryParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestMaxScoreQueryParser.java?rev=1486901&r1=1486900&r2=1486901&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestMaxScoreQueryParser.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestMaxScoreQueryParser.java Tue May 28 12:15:37 2013
@@ -26,6 +26,7 @@ import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
public class TestMaxScoreQueryParser extends AbstractSolrTestCase {
Query q;
@@ -41,6 +42,9 @@ public class TestMaxScoreQueryParser ext
q = parse("foo");
assertTrue(q instanceof TermQuery);
+ q = parse("foo^3.0");
+ assertTrue(q instanceof TermQuery);
+
q = parse("price:[0 TO 10]");
assertTrue(q instanceof NumericRangeQuery);
}
@@ -92,6 +96,38 @@ public class TestMaxScoreQueryParser ext
assertEquals(0.5, ((DisjunctionMaxQuery) clauses[0].getQuery()).getTieBreakerMultiplier(), 1e-15);
}
+ @Test
+ public void testBoost() {
+ // Simple term query
+ q = parse("foo^3.0");
+ assertEquals(3.0, q.getBoost(), 1e-15);
+
+ // Some DMQ and one plain required
+ q = parse("foo^5.0 bar^6.0 +baz^7");
+ clauses = clauses(q);
+ assertEquals(2, clauses.length);
+ assertTrue(clauses[0].getQuery() instanceof DisjunctionMaxQuery);
+ DisjunctionMaxQuery dmq = ((DisjunctionMaxQuery) clauses[0].getQuery());
+ float fooClause = ((BooleanQuery)dmq.getDisjuncts().get(0)).clauses().get(0).getQuery().getBoost();
+ assertEquals(5.0, fooClause, 1e-15);
+ float barClause = ((BooleanQuery)dmq.getDisjuncts().get(1)).clauses().get(0).getQuery().getBoost();
+ assertEquals(6.0, barClause, 1e-15);
+ assertEquals(7.0, clauses[1].getQuery().getBoost(), 1e-15);
+ assertEquals(1.0, q.getBoost(), 1e-15);
+
+ // Grouped with parens on top level
+ q = parse("(foo^2.0 bar)^3.0");
+ clauses = clauses(q);
+ assertEquals(1, clauses.length);
+ assertTrue(clauses[0].getQuery() instanceof DisjunctionMaxQuery);
+ dmq = ((DisjunctionMaxQuery) clauses[0].getQuery());
+ fooClause = ((BooleanQuery)dmq.getDisjuncts().get(0)).clauses().get(0).getQuery().getBoost();
+ assertEquals(2.0, fooClause, 1e-15);
+ barClause = ((BooleanQuery)dmq.getDisjuncts().get(1)).clauses().get(0).getQuery().getBoost();
+ assertEquals(1.0, barClause, 1e-15);
+ assertEquals(3.0, q.getBoost(), 1e-15);
+ }
+
//
// Helper methods
//