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 2011/08/20 19:21:51 UTC

svn commit: r1159890 - /lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/

Author: rmuir
Date: Sat Aug 20 17:21:50 2011
New Revision: 1159890

URL: http://svn.apache.org/viewvc?rev=1159890&view=rev
Log:
LUCENE-2959: doclen int -> float

Modified:
    lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/DFRSimilarity.java
    lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/EasySimilarity.java
    lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/IBSimilarity.java
    lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/LMDirichletSimilarity.java
    lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/LMJelinekMercerSimilarity.java
    lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/LMSimilarity.java
    lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/Normalization.java
    lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/NormalizationH1.java
    lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/NormalizationH2.java

Modified: lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/DFRSimilarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/DFRSimilarity.java?rev=1159890&r1=1159889&r2=1159890&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/DFRSimilarity.java (original)
+++ lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/DFRSimilarity.java Sat Aug 20 17:21:50 2011
@@ -78,7 +78,7 @@ public class DFRSimilarity extends EasyS
   }
   
   @Override
-  protected float score(EasyStats stats, float freq, int docLen) {
+  protected float score(EasyStats stats, float freq, float docLen) {
     float tfn = normalization.tfn(stats, freq, docLen);
     return stats.getTotalBoost() *
         basicModel.score(stats, tfn) * afterEffect.score(stats, tfn);
@@ -86,7 +86,7 @@ public class DFRSimilarity extends EasyS
 
   @Override
   protected void explain(Explanation expl,
-      EasyStats stats, int doc, float freq, int docLen) {
+      EasyStats stats, int doc, float freq, float docLen) {
     if (stats.getTotalBoost() != 1.0f) {
       expl.addDetail(new Explanation(stats.getTotalBoost(), "boost"));
     }

Modified: lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/EasySimilarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/EasySimilarity.java?rev=1159890&r1=1159889&r2=1159890&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/EasySimilarity.java (original)
+++ lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/EasySimilarity.java Sat Aug 20 17:21:50 2011
@@ -117,7 +117,7 @@ public abstract class EasySimilarity ext
    * @param docLen the document length.
    * @return the score.
    */
-  protected abstract float score(EasyStats stats, float freq, int docLen);
+  protected abstract float score(EasyStats stats, float freq, float docLen);
   
   /**
    * Subclasses should implement this method to explain the score. {@code expl}
@@ -133,7 +133,7 @@ public abstract class EasySimilarity ext
    * @param docLen the document length.
    */
   protected void explain(
-      Explanation expl, EasyStats stats, int doc, float freq, int docLen) {}
+      Explanation expl, EasyStats stats, int doc, float freq, float docLen) {}
   
   /**
    * Explains the score. The implementation here provides a basic explanation
@@ -151,7 +151,7 @@ public abstract class EasySimilarity ext
    * @return the explanation.
    */
   protected Explanation explain(
-      EasyStats stats, int doc, Explanation freq, int docLen) {
+      EasyStats stats, int doc, Explanation freq, float docLen) {
     Explanation result = new Explanation(); 
     result.setValue(score(stats, freq.getValue(), docLen));
     result.setDescription("score(" + getClass().getSimpleName() +
@@ -187,12 +187,12 @@ public abstract class EasySimilarity ext
   // ------------------------------ Norm handling ------------------------------
   
   /** Norm -> document length map. */
-  private static final int[] NORM_TABLE = new int[256];
+  private static final float[] NORM_TABLE = new float[256];
 
   static {
     for (int i = 0; i < 256; i++) {
       float floatNorm = SmallFloat.byte315ToFloat((byte)i);
-      NORM_TABLE[i] = (int)(1.0 / (floatNorm * floatNorm));
+      NORM_TABLE[i] = 1.0f / (floatNorm * floatNorm);
     }
   }
 
@@ -210,7 +210,7 @@ public abstract class EasySimilarity ext
   /** Decodes a normalization factor (document length) stored in an index.
    * @see #encodeNormValue(float)
    */
-  protected int decodeNormValue(byte norm) {
+  protected float decodeNormValue(byte norm) {
     return NORM_TABLE[norm & 0xFF];  // & 0xFF maps negative bytes to positive above 127
   }
   
@@ -248,13 +248,13 @@ public abstract class EasySimilarity ext
     public float score(int doc, int freq) {
       // We have to supply something in case norms are omitted
       return EasySimilarity.this.score(stats, freq,
-          norms == null ? (int)(freq + 0.5) : decodeNormValue(norms[doc]));
+          norms == null ? freq : decodeNormValue(norms[doc]));
     }
     
     @Override
     public Explanation explain(int doc, Explanation freq) {
       return EasySimilarity.this.explain(stats, doc, freq,
-          norms == null ? (int)(freq.getValue() + 0.5) : decodeNormValue(norms[doc]));
+          norms == null ? freq.getValue() : decodeNormValue(norms[doc]));
     }
   }
   
@@ -277,12 +277,12 @@ public abstract class EasySimilarity ext
     public float score(int doc, float freq) {
       // We have to supply something in case norms are omitted
       return EasySimilarity.this.score(stats, freq,
-          norms == null ? (int)(freq + 0.5) : decodeNormValue(norms[doc]));
+          norms == null ? freq : decodeNormValue(norms[doc]));
     }
     @Override
     public Explanation explain(int doc, Explanation freq) {
       return EasySimilarity.this.explain(stats, doc, freq,
-          norms == null ? (int)(freq.getValue() + 0.5) : decodeNormValue(norms[doc]));
+          norms == null ? freq.getValue() : decodeNormValue(norms[doc]));
     }
 
     @Override

Modified: lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/IBSimilarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/IBSimilarity.java?rev=1159890&r1=1159889&r2=1159890&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/IBSimilarity.java (original)
+++ lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/IBSimilarity.java Sat Aug 20 17:21:50 2011
@@ -63,7 +63,7 @@ public class IBSimilarity extends EasySi
   }
   
   @Override
-  protected float score(EasyStats stats, float freq, int docLen) {
+  protected float score(EasyStats stats, float freq, float docLen) {
     return stats.getTotalBoost() *
         distribution.score(
             stats,
@@ -73,7 +73,7 @@ public class IBSimilarity extends EasySi
 
   @Override
   protected void explain(
-      Explanation expl, EasyStats stats, int doc, float freq, int docLen) {
+      Explanation expl, EasyStats stats, int doc, float freq, float docLen) {
     if (stats.getTotalBoost() != 1.0f) {
       expl.addDetail(new Explanation(stats.getTotalBoost(), "boost"));
     }

Modified: lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/LMDirichletSimilarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/LMDirichletSimilarity.java?rev=1159890&r1=1159889&r2=1159890&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/LMDirichletSimilarity.java (original)
+++ lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/LMDirichletSimilarity.java Sat Aug 20 17:21:50 2011
@@ -60,7 +60,7 @@ public class LMDirichletSimilarity exten
   }
   
   @Override
-  protected float score(EasyStats stats, float freq, int docLen) {
+  protected float score(EasyStats stats, float freq, float docLen) {
     float score = stats.getTotalBoost() * (float)(Math.log(1 + freq /
         (mu * ((LMStats)stats).getCollectionProbability())) +
         Math.log(mu / (docLen + mu)));
@@ -69,7 +69,7 @@ public class LMDirichletSimilarity exten
   
   @Override
   protected void explain(Explanation expl, EasyStats stats, int doc,
-      float freq, int docLen) {
+      float freq, float docLen) {
     if (stats.getTotalBoost() != 1.0f) {
       expl.addDetail(new Explanation(stats.getTotalBoost(), "boost"));
     }

Modified: lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/LMJelinekMercerSimilarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/LMJelinekMercerSimilarity.java?rev=1159890&r1=1159889&r2=1159890&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/LMJelinekMercerSimilarity.java (original)
+++ lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/LMJelinekMercerSimilarity.java Sat Aug 20 17:21:50 2011
@@ -49,7 +49,7 @@ public class LMJelinekMercerSimilarity e
   }
   
   @Override
-  protected float score(EasyStats stats, float freq, int docLen) {
+  protected float score(EasyStats stats, float freq, float docLen) {
     return stats.getTotalBoost() *
         (float)Math.log(1 +
             ((1 - lambda) * freq / docLen) /
@@ -58,7 +58,7 @@ public class LMJelinekMercerSimilarity e
   
   @Override
   protected void explain(Explanation expl, EasyStats stats, int doc,
-      float freq, int docLen) {
+      float freq, float docLen) {
     if (stats.getTotalBoost() != 1.0f) {
       expl.addDetail(new Explanation(stats.getTotalBoost(), "boost"));
     }

Modified: lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/LMSimilarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/LMSimilarity.java?rev=1159890&r1=1159889&r2=1159890&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/LMSimilarity.java (original)
+++ lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/LMSimilarity.java Sat Aug 20 17:21:50 2011
@@ -67,7 +67,7 @@ public abstract class LMSimilarity exten
 
   @Override
   protected void explain(Explanation expl, EasyStats stats, int doc,
-      float freq, int docLen) {
+      float freq, float docLen) {
     expl.addDetail(new Explanation(collectionModel.computeProbability(stats),
                                    "collection probability"));
   }

Modified: lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/Normalization.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/Normalization.java?rev=1159890&r1=1159889&r2=1159890&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/Normalization.java (original)
+++ lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/Normalization.java Sat Aug 20 17:21:50 2011
@@ -29,7 +29,7 @@ import org.apache.lucene.search.Explanat
 public abstract class Normalization {
   /** Returns the normalized term frequency.
    * @param len the field length. */
-  public abstract float tfn(EasyStats stats, float tf, int len);
+  public abstract float tfn(EasyStats stats, float tf, float len);
   
   /** Returns an explanation for the normalized term frequency.
    * <p>The default normalization methods use the field length of the document
@@ -37,7 +37,7 @@ public abstract class Normalization {
    * This method provides a generic explanation for such methods.
    * Subclasses that use other statistics must override this method.</p>
    */
-  public Explanation explain(EasyStats stats, float tf, int len) {
+  public Explanation explain(EasyStats stats, float tf, float len) {
     Explanation result = new Explanation();
     result.setDescription(getClass().getSimpleName() + ", computed from: ");
     result.setValue(tfn(stats, tf, len));
@@ -51,12 +51,12 @@ public abstract class Normalization {
   /** Implementation used when there is no normalization. */
   public static final class NoNormalization extends Normalization {
     @Override
-    public final float tfn(EasyStats stats, float tf, int len) {
+    public final float tfn(EasyStats stats, float tf, float len) {
       return tf;
     }
 
     @Override
-    public final Explanation explain(EasyStats stats, float tf, int len) {
+    public final Explanation explain(EasyStats stats, float tf, float len) {
       return new Explanation(1, "no normalization");
     }
     

Modified: lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/NormalizationH1.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/NormalizationH1.java?rev=1159890&r1=1159889&r2=1159890&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/NormalizationH1.java (original)
+++ lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/NormalizationH1.java Sat Aug 20 17:21:50 2011
@@ -22,7 +22,7 @@ package org.apache.lucene.search.similar
  */
 public class NormalizationH1 extends Normalization {
   @Override
-  public final float tfn(EasyStats stats, float tf, int len) {
+  public final float tfn(EasyStats stats, float tf, float len) {
     return tf * stats.getAvgFieldLength() / len;
   }
 

Modified: lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/NormalizationH2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/NormalizationH2.java?rev=1159890&r1=1159889&r2=1159890&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/NormalizationH2.java (original)
+++ lucene/dev/branches/flexscoring/lucene/src/test/org/apache/lucene/search/similarities/NormalizationH2.java Sat Aug 20 17:21:50 2011
@@ -25,7 +25,7 @@ import static org.apache.lucene.search.s
  */
 public class NormalizationH2 extends Normalization {
   @Override
-  public final float tfn(EasyStats stats, float tf, int len) {
+  public final float tfn(EasyStats stats, float tf, float len) {
     return (float)(tf * log2(1 + stats.getAvgFieldLength() / len));
   }