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 2013/09/18 17:53:53 UTC

svn commit: r1524467 - in /lucene/dev/branches/lucene_solr_4_5: ./ lucene/ lucene/core/ lucene/core/src/java/org/apache/lucene/search/similarities/ lucene/core/src/test/org/apache/lucene/search/similarities/

Author: rmuir
Date: Wed Sep 18 15:53:52 2013
New Revision: 1524467

URL: http://svn.apache.org/r1524467
Log:
LUCENE-5221: SimilarityBase.computeNorm is inconsistent with TFIDFSimilarity

Modified:
    lucene/dev/branches/lucene_solr_4_5/   (props changed)
    lucene/dev/branches/lucene_solr_4_5/lucene/   (props changed)
    lucene/dev/branches/lucene_solr_4_5/lucene/CHANGES.txt   (contents, props changed)
    lucene/dev/branches/lucene_solr_4_5/lucene/core/   (props changed)
    lucene/dev/branches/lucene_solr_4_5/lucene/core/src/java/org/apache/lucene/search/similarities/SimilarityBase.java
    lucene/dev/branches/lucene_solr_4_5/lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java

Modified: lucene/dev/branches/lucene_solr_4_5/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_4_5/lucene/CHANGES.txt?rev=1524467&r1=1524466&r2=1524467&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_4_5/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/lucene_solr_4_5/lucene/CHANGES.txt Wed Sep 18 15:53:52 2013
@@ -118,6 +118,10 @@ Bug Fixes
 * LUCENE-5201: Fixed compression bug in LZ4.compressHC when the input is highly
   compressible and the start offset of the array to compress is > 0.
   (Adrien Grand)
+
+* LUCENE-5221: SimilarityBase did not write norms the same way as DefaultSimilarity
+  if discountOverlaps == false and index-time boosts are present for the field.
+  (Yubin Kim via Robert Muir)
   
 API Changes
 

Modified: lucene/dev/branches/lucene_solr_4_5/lucene/core/src/java/org/apache/lucene/search/similarities/SimilarityBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_4_5/lucene/core/src/java/org/apache/lucene/search/similarities/SimilarityBase.java?rev=1524467&r1=1524466&r2=1524467&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_4_5/lucene/core/src/java/org/apache/lucene/search/similarities/SimilarityBase.java (original)
+++ lucene/dev/branches/lucene_solr_4_5/lucene/core/src/java/org/apache/lucene/search/similarities/SimilarityBase.java Wed Sep 18 15:53:52 2013
@@ -233,7 +233,7 @@ public abstract class SimilarityBase ext
     if (discountOverlaps)
       numTerms = state.getLength() - state.getNumOverlap();
     else
-      numTerms = state.getLength() / state.getBoost();
+      numTerms = state.getLength();
     return encodeNormValue(state.getBoost(), numTerms);
   }
   

Modified: lucene/dev/branches/lucene_solr_4_5/lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_4_5/lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java?rev=1524467&r1=1524466&r2=1524467&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_4_5/lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java (original)
+++ lucene/dev/branches/lucene_solr_4_5/lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java Wed Sep 18 15:53:52 2013
@@ -26,6 +26,7 @@ import org.apache.lucene.document.Docume
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
 import org.apache.lucene.document.TextField;
+import org.apache.lucene.index.FieldInvertState;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
@@ -576,4 +577,20 @@ public class TestSimilarityBase extends 
     dir.close();
     super.tearDown();
   }
+  
+  // LUCENE-5221
+  public void testDiscountOverlapsBoost() throws IOException {
+    DefaultSimilarity expected = new DefaultSimilarity();
+    SimilarityBase actual = new DFRSimilarity(new BasicModelIne(), new AfterEffectB(), new NormalizationH2());
+    expected.setDiscountOverlaps(false);
+    actual.setDiscountOverlaps(false);
+    FieldInvertState state = new FieldInvertState("foo");
+    state.setLength(5);
+    state.setNumOverlap(2);
+    state.setBoost(3);
+    assertEquals(expected.computeNorm(state), actual.computeNorm(state));
+    expected.setDiscountOverlaps(true);
+    actual.setDiscountOverlaps(true);
+    assertEquals(expected.computeNorm(state), actual.computeNorm(state));
+  }
 }