You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2012/01/25 15:25:18 UTC

svn commit: r1235758 - in /lucene/dev/trunk/lucene/src/java/org/apache/lucene/search: CollectionStatistics.java TermStatistics.java similarities/BM25Similarity.java similarities/SimilarityBase.java

Author: rmuir
Date: Wed Jan 25 14:25:18 2012
New Revision: 1235758

URL: http://svn.apache.org/viewvc?rev=1235758&view=rev
Log:
LUCENE-3723: beef up stats bounds assertion checks

Modified:
    lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/CollectionStatistics.java
    lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/TermStatistics.java
    lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/similarities/BM25Similarity.java
    lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/similarities/SimilarityBase.java

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/CollectionStatistics.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/CollectionStatistics.java?rev=1235758&r1=1235757&r2=1235758&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/CollectionStatistics.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/CollectionStatistics.java Wed Jan 25 14:25:18 2012
@@ -32,6 +32,10 @@ public class CollectionStatistics {
   private final long sumDocFreq;
   
   public CollectionStatistics(String field, int maxDoc, int docCount, long sumTotalTermFreq, long sumDocFreq) {
+    assert maxDoc >= 0;
+    assert docCount >= -1 && docCount <= maxDoc; // #docs with field must be <= #docs
+    assert sumDocFreq >= -1;
+    assert sumTotalTermFreq == -1 || sumTotalTermFreq >= sumDocFreq; // #positions must be >= #postings
     this.field = field;
     this.maxDoc = maxDoc;
     this.docCount = docCount;

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/TermStatistics.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/TermStatistics.java?rev=1235758&r1=1235757&r2=1235758&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/TermStatistics.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/TermStatistics.java Wed Jan 25 14:25:18 2012
@@ -29,6 +29,8 @@ public class TermStatistics {
   private final long totalTermFreq;
   
   public TermStatistics(BytesRef term, int docFreq, long totalTermFreq) {
+    assert docFreq >= 0;
+    assert totalTermFreq == -1 || totalTermFreq >= docFreq; // #positions must be >= #postings
     this.term = term;
     this.docFreq = docFreq;
     this.totalTermFreq = totalTermFreq;

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/similarities/BM25Similarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/similarities/BM25Similarity.java?rev=1235758&r1=1235757&r2=1235758&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/similarities/BM25Similarity.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/similarities/BM25Similarity.java Wed Jan 25 14:25:18 2012
@@ -154,7 +154,6 @@ public class BM25Similarity extends Simi
 
   @Override
   public final Stats computeStats(CollectionStatistics collectionStats, float queryBoost, TermStatistics... termStats) {
-    assert collectionStats.sumTotalTermFreq() >= -1;
     Explanation idf = termStats.length == 1 ? idfExplain(collectionStats, termStats[0]) : idfExplain(collectionStats, termStats);
 
     float avgdl = avgFieldLength(collectionStats);

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/similarities/SimilarityBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/similarities/SimilarityBase.java?rev=1235758&r1=1235757&r2=1235758&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/similarities/SimilarityBase.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/similarities/SimilarityBase.java Wed Jan 25 14:25:18 2012
@@ -87,9 +87,7 @@ public abstract class SimilarityBase ext
   /** Fills all member fields defined in {@code BasicStats} in {@code stats}. 
    *  Subclasses can override this method to fill additional stats. */
   protected void fillBasicStats(BasicStats stats, CollectionStatistics collectionStats, TermStatistics termStats) {
-    assert termStats.totalTermFreq() >= -1;
-    assert termStats.totalTermFreq() == -1 || termStats.totalTermFreq() >= termStats.docFreq();
-    assert collectionStats.sumTotalTermFreq() >= -1;
+    // #positions(field) must be >= #positions(term)
     assert collectionStats.sumTotalTermFreq() == -1 || collectionStats.sumTotalTermFreq() >= termStats.totalTermFreq();
     int numberOfDocuments = collectionStats.maxDoc();