You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@lucene.apache.org by yo...@apache.org on 2010/02/18 21:25:29 UTC
svn commit: r911553 - in /lucene/java/branches/lucene_3_0: CHANGES.txt
src/java/org/apache/lucene/search/Query.java
Author: yonik
Date: Thu Feb 18 20:25:29 2010
New Revision: 911553
URL: http://svn.apache.org/viewvc?rev=911553&view=rev
Log:
LUCENE-2770: fix query normalization when boosts of all clauses==0
Modified:
lucene/java/branches/lucene_3_0/CHANGES.txt
lucene/java/branches/lucene_3_0/src/java/org/apache/lucene/search/Query.java
Modified: lucene/java/branches/lucene_3_0/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/java/branches/lucene_3_0/CHANGES.txt?rev=911553&r1=911552&r2=911553&view=diff
==============================================================================
--- lucene/java/branches/lucene_3_0/CHANGES.txt (original)
+++ lucene/java/branches/lucene_3_0/CHANGES.txt Thu Feb 18 20:25:29 2010
@@ -47,6 +47,10 @@
only one payload is present. (Erik Hatcher, Mike McCandless
via Uwe Schindler)
+ * LUCENE-2770: Queries consisting of all zero-boost clauses
+ (for example, text:foo^0) sorted incorrectly and produced
+ invalid docids. (yonik
+
API Changes
* LUCENE-1609: Restore IndexReader.getTermInfosIndexDivisor (it was
Modified: lucene/java/branches/lucene_3_0/src/java/org/apache/lucene/search/Query.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/lucene_3_0/src/java/org/apache/lucene/search/Query.java?rev=911553&r1=911552&r2=911553&view=diff
==============================================================================
--- lucene/java/branches/lucene_3_0/src/java/org/apache/lucene/search/Query.java (original)
+++ lucene/java/branches/lucene_3_0/src/java/org/apache/lucene/search/Query.java Thu Feb 18 20:25:29 2010
@@ -101,6 +101,8 @@
Weight weight = query.createWeight(searcher);
float sum = weight.sumOfSquaredWeights();
float norm = getSimilarity(searcher).queryNorm(sum);
+ if (Float.isInfinite(norm) || Float.isNaN(norm))
+ norm = 1.0f;
weight.normalize(norm);
return weight;
}