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));
}