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/09/20 00:16:22 UTC
svn commit: r1387797 - in /lucene/dev/trunk/lucene: ./
core/src/java/org/apache/lucene/codecs/lucene40/
core/src/java/org/apache/lucene/search/similarities/
Author: rmuir
Date: Wed Sep 19 22:16:20 2012
New Revision: 1387797
URL: http://svn.apache.org/viewvc?rev=1387797&view=rev
Log:
javadocs
Modified:
lucene/dev/trunk/lucene/build.xml
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40FieldInfosReader.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/AfterEffect.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/AfterEffectB.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/AfterEffectL.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BM25Similarity.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModel.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelBE.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelD.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelG.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelIF.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelIn.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelIne.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelP.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DFRSimilarity.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DefaultSimilarity.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Distribution.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DistributionLL.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DistributionSPL.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/IBSimilarity.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LMDirichletSimilarity.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LMJelinekMercerSimilarity.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LMSimilarity.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Lambda.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LambdaDF.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LambdaTTF.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/MultiSimilarity.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Normalization.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationH1.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationH2.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationH3.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationZ.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/PerFieldSimilarityWrapper.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Similarity.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/SimilarityBase.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/TFIDFSimilarity.java
Modified: lucene/dev/trunk/lucene/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/build.xml?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/build.xml (original)
+++ lucene/dev/trunk/lucene/build.xml Wed Sep 19 22:16:20 2012
@@ -263,6 +263,7 @@
<!-- too much to fix for now, but enforce full javadocs for key packages -->
<check-missing-javadocs dir="build/docs/core/org/apache/lucene/analysis" level="method"/>
<check-missing-javadocs dir="build/docs/core/org/apache/lucene/document" level="method"/>
+ <check-missing-javadocs dir="build/docs/core/org/apache/lucene/search/similarities" level="method"/>
</sequential>
</target>
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40FieldInfosReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40FieldInfosReader.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40FieldInfosReader.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40FieldInfosReader.java Wed Sep 19 22:16:20 2012
@@ -100,8 +100,7 @@ public class Lucene40FieldInfosReader ex
}
}
- public DocValues.Type getDocValuesType(
- final byte b) {
+ private static DocValues.Type getDocValuesType(final byte b) {
switch(b) {
case 0:
return null;
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/AfterEffect.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/AfterEffect.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/AfterEffect.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/AfterEffect.java Wed Sep 19 22:16:20 2012
@@ -30,6 +30,13 @@ import org.apache.lucene.search.Explanat
* @lucene.experimental
*/
public abstract class AfterEffect {
+
+ /**
+ * Sole constructor. (For invocation by subclass
+ * constructors, typically implicit.)
+ */
+ public AfterEffect() {}
+
/** Returns the aftereffect score. */
public abstract float score(BasicStats stats, float tfn);
@@ -38,6 +45,10 @@ public abstract class AfterEffect {
/** Implementation used when there is no aftereffect. */
public static final class NoAfterEffect extends AfterEffect {
+
+ /** Sole constructor: parameter-free */
+ public NoAfterEffect() {}
+
@Override
public final float score(BasicStats stats, float tfn) {
return 1f;
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/AfterEffectB.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/AfterEffectB.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/AfterEffectB.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/AfterEffectB.java Wed Sep 19 22:16:20 2012
@@ -24,6 +24,10 @@ import org.apache.lucene.search.Explanat
* @lucene.experimental
*/
public class AfterEffectB extends AfterEffect {
+
+ /** Sole constructor: parameter-free */
+ public AfterEffectB() {}
+
@Override
public final float score(BasicStats stats, float tfn) {
long F = stats.getTotalTermFreq()+1;
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/AfterEffectL.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/AfterEffectL.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/AfterEffectL.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/AfterEffectL.java Wed Sep 19 22:16:20 2012
@@ -24,6 +24,10 @@ import org.apache.lucene.search.Explanat
* @lucene.experimental
*/
public class AfterEffectL extends AfterEffect {
+
+ /** Sole constructor: parameter-free */
+ public AfterEffectL() {}
+
@Override
public final float score(BasicStats stats, float tfn) {
return 1 / (tfn + 1);
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BM25Similarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BM25Similarity.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BM25Similarity.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BM25Similarity.java Wed Sep 19 22:16:20 2012
@@ -41,6 +41,11 @@ public class BM25Similarity extends Simi
private final float b;
// TODO: should we add a delta like sifaka.cs.uiuc.edu/~ylv2/pub/sigir11-bm25l.pdf ?
+ /**
+ * BM25 with the supplied parameter values.
+ * @param k1 Controls non-linear term frequency normalization (saturation).
+ * @param b Controls to what degree document length normalizes tf values.
+ */
public BM25Similarity(float k1, float b) {
this.k1 = k1;
this.b = b;
@@ -98,17 +103,23 @@ public class BM25Similarity extends Simi
return NORM_TABLE[b & 0xFF];
}
- // Default true
+ /**
+ * True if overlap tokens (tokens with a position of increment of zero) are
+ * discounted from the document's length.
+ */
protected boolean discountOverlaps = true;
- /** Determines whether overlap tokens (Tokens with 0 position increment) are
+ /** Sets whether overlap tokens (Tokens with 0 position increment) are
* ignored when computing norm. By default this is true, meaning overlap
* tokens do not count when computing norms. */
public void setDiscountOverlaps(boolean v) {
discountOverlaps = v;
}
- /** @see #setDiscountOverlaps */
+ /**
+ * Returns true if overlap tokens are discounted from the document's length.
+ * @see #setDiscountOverlaps
+ */
public boolean getDiscountOverlaps() {
return discountOverlaps;
}
@@ -130,6 +141,28 @@ public class BM25Similarity extends Simi
norm.setByte(encodeNormValue(state.getBoost(), numTerms));
}
+ /**
+ * Computes a score factor for a simple term and returns an explanation
+ * for that score factor.
+ *
+ * <p>
+ * The default implementation uses:
+ *
+ * <pre class="prettyprint">
+ * idf(docFreq, searcher.maxDoc());
+ * </pre>
+ *
+ * Note that {@link CollectionStatistics#maxDoc()} is used instead of
+ * {@link org.apache.lucene.index.IndexReader#numDocs() IndexReader#numDocs()} because also
+ * {@link TermStatistics#docFreq()} is used, and when the latter
+ * is inaccurate, so is {@link CollectionStatistics#maxDoc()}, and in the same direction.
+ * In addition, {@link CollectionStatistics#maxDoc()} is more efficient to compute
+ *
+ * @param collectionStats collection-level statistics
+ * @param termStats term-level statistics for the term
+ * @return an Explain object that includes both an idf score factor
+ and an explanation for the term.
+ */
public Explanation idfExplain(CollectionStatistics collectionStats, TermStatistics termStats) {
final long df = termStats.docFreq();
final long max = collectionStats.maxDoc();
@@ -137,6 +170,19 @@ public class BM25Similarity extends Simi
return new Explanation(idf, "idf(docFreq=" + df + ", maxDocs=" + max + ")");
}
+ /**
+ * Computes a score factor for a phrase.
+ *
+ * <p>
+ * The default implementation sums the idf factor for
+ * each term in the phrase.
+ *
+ * @param collectionStats collection-level statistics
+ * @param termStats term-level statistics for the terms in the phrase
+ * @return an Explain object that includes both an idf
+ * score factor for the phrase and an explanation
+ * for each term.
+ */
public Explanation idfExplain(CollectionStatistics collectionStats, TermStatistics termStats[]) {
final long max = collectionStats.maxDoc();
float idf = 0.0f;
@@ -344,10 +390,18 @@ public class BM25Similarity extends Simi
return "BM25(k1=" + k1 + ",b=" + b + ")";
}
+ /**
+ * Returns the <code>k1</code> parameter
+ * @see #BM25Similarity(float, float)
+ */
public float getK1() {
return k1;
}
+ /**
+ * Returns the <code>b</code> parameter
+ * @see #BM25Similarity(float, float)
+ */
public float getB() {
return b;
}
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModel.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModel.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModel.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModel.java Wed Sep 19 22:16:20 2012
@@ -29,6 +29,13 @@ import org.apache.lucene.search.Explanat
* @lucene.experimental
*/
public abstract class BasicModel {
+
+ /**
+ * Sole constructor. (For invocation by subclass
+ * constructors, typically implicit.)
+ */
+ public BasicModel() {}
+
/** Returns the informative content score. */
public abstract float score(BasicStats stats, float tfn);
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelBE.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelBE.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelBE.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelBE.java Wed Sep 19 22:16:20 2012
@@ -30,6 +30,10 @@ import static org.apache.lucene.search.s
* but with less practical problems.
*/
public class BasicModelBE extends BasicModel {
+
+ /** Sole constructor: parameter-free */
+ public BasicModelBE() {}
+
@Override
public final float score(BasicStats stats, float tfn) {
double F = stats.getTotalTermFreq() + 1 + tfn;
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelD.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelD.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelD.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelD.java Wed Sep 19 22:16:20 2012
@@ -32,6 +32,10 @@ import static org.apache.lucene.search.s
* @lucene.experimental
*/
public class BasicModelD extends BasicModel {
+
+ /** Sole constructor: parameter-free */
+ public BasicModelD() {}
+
@Override
public final float score(BasicStats stats, float tfn) {
// we have to ensure phi is always < 1 for tiny TTF values, otherwise nphi can go negative,
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelG.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelG.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelG.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelG.java Wed Sep 19 22:16:20 2012
@@ -26,6 +26,10 @@ import static org.apache.lucene.search.s
* @lucene.experimental
*/
public class BasicModelG extends BasicModel {
+
+ /** Sole constructor: parameter-free */
+ public BasicModelG() {}
+
@Override
public final float score(BasicStats stats, float tfn) {
// just like in BE, approximation only holds true when F << N, so we use lambda = F / (N + F)
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelIF.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelIF.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelIF.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelIF.java Wed Sep 19 22:16:20 2012
@@ -24,6 +24,10 @@ import static org.apache.lucene.search.s
* @lucene.experimental
*/
public class BasicModelIF extends BasicModel {
+
+ /** Sole constructor: parameter-free */
+ public BasicModelIF() {}
+
@Override
public final float score(BasicStats stats, float tfn) {
long N = stats.getNumberOfDocuments();
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelIn.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelIn.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelIn.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelIn.java Wed Sep 19 22:16:20 2012
@@ -25,6 +25,10 @@ import static org.apache.lucene.search.s
* @lucene.experimental
*/
public class BasicModelIn extends BasicModel {
+
+ /** Sole constructor: parameter-free */
+ public BasicModelIn() {}
+
@Override
public final float score(BasicStats stats, float tfn) {
long N = stats.getNumberOfDocuments();
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelIne.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelIne.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelIne.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelIne.java Wed Sep 19 22:16:20 2012
@@ -25,6 +25,10 @@ import static org.apache.lucene.search.s
* @lucene.experimental
*/
public class BasicModelIne extends BasicModel {
+
+ /** Sole constructor: parameter-free */
+ public BasicModelIne() {}
+
@Override
public final float score(BasicStats stats, float tfn) {
long N = stats.getNumberOfDocuments();
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelP.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelP.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelP.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/BasicModelP.java Wed Sep 19 22:16:20 2012
@@ -31,6 +31,9 @@ public class BasicModelP extends BasicMo
/** {@code log2(Math.E)}, precomputed. */
protected static double LOG2_E = log2(Math.E);
+ /** Sole constructor: parameter-free */
+ public BasicModelP() {}
+
@Override
public final float score(BasicStats stats, float tfn) {
float lambda = (float)(stats.getTotalTermFreq()+1) / (stats.getNumberOfDocuments()+1);
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DFRSimilarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DFRSimilarity.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DFRSimilarity.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DFRSimilarity.java Wed Sep 19 22:16:20 2012
@@ -18,6 +18,8 @@ package org.apache.lucene.search.similar
*/
import org.apache.lucene.search.Explanation;
+import org.apache.lucene.search.similarities.AfterEffect.NoAfterEffect;
+import org.apache.lucene.search.similarities.Normalization.NoNormalization;
/**
* Implements the <em>divergence from randomness (DFR)</em> framework
@@ -31,6 +33,41 @@ import org.apache.lucene.search.Explanat
* {@code BasicModel}, {@code AfterEffect} and {@code Normalization},
* respectively. The names of these classes were chosen to match the names of
* their counterparts in the Terrier IR engine.</p>
+ * <p>To construct a DFRSimilarity, you must specify the implementations for
+ * all three components of DFR:
+ * <ol>
+ * <li>{@link BasicModel}: Basic model of information content:
+ * <ul>
+ * <li>{@link BasicModelBE}: Limiting form of Bose-Einstein
+ * <li>{@link BasicModelG}: Geometric approximation of Bose-Einstein
+ * <li>{@link BasicModelP}: Poisson approximation of the Binomial
+ * <li>{@link BasicModelD}: Divergence approximation of the Binomial
+ * <li>{@link BasicModelIn}: Inverse document frequency
+ * <li>{@link BasicModelIne}: Inverse expected document
+ * frequency [mixture of Poisson and IDF]
+ * <li>{@link BasicModelIF}: Inverse term frequency
+ * [approximation of I(ne)]
+ * </ul>
+ * <li>{@link AfterEffect}: First normalization of information
+ * gain:
+ * <ul>
+ * <li>{@link AfterEffectL}: Laplace's law of succession
+ * <li>{@link AfterEffectB}: Ratio of two Bernoulli processes
+ * <li>{@link NoAfterEffect}: no first normalization
+ * </ul>
+ * <li>{@link Normalization}: Second (length) normalization:
+ * <ul>
+ * <li>{@link NormalizationH1}: Uniform distribution of term
+ * frequency
+ * <li>{@link NormalizationH2}: term frequency density inversely
+ * related to length
+ * <li>{@link NormalizationH3}: term frequency normalization
+ * provided by Dirichlet prior
+ * <li>{@link NormalizationZ}: term frequency normalization provided
+ * by a Zipfian relation
+ * <li>{@link NoNormalization}: no second normalization
+ * </ul>
+ * </ol>
* <p>Note that <em>qtf</em>, the multiplicity of term-occurrence in the query,
* is not handled by this implementation.</p>
* @see BasicModel
@@ -46,6 +83,16 @@ public class DFRSimilarity extends Simil
/** The term frequency normalization. */
protected final Normalization normalization;
+ /**
+ * Creates DFRSimilarity from the three components.
+ * <p>
+ * Note that <code>null</code> values are not allowed:
+ * if you want no normalization or after-effect, instead pass
+ * {@link NoNormalization} or {@link NoAfterEffect} respectively.
+ * @param basicModel Basic model of information content
+ * @param afterEffect First normalization of information gain
+ * @param normalization Second (length) normalization
+ */
public DFRSimilarity(BasicModel basicModel,
AfterEffect afterEffect,
Normalization normalization) {
@@ -84,14 +131,23 @@ public class DFRSimilarity extends Simil
+ normalization.toString();
}
+ /**
+ * Returns the basic model of information content
+ */
public BasicModel getBasicModel() {
return basicModel;
}
+ /**
+ * Returns the first normalization
+ */
public AfterEffect getAfterEffect() {
return afterEffect;
}
+ /**
+ * Returns the second normalization
+ */
public Normalization getNormalization() {
return normalization;
}
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DefaultSimilarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DefaultSimilarity.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DefaultSimilarity.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DefaultSimilarity.java Wed Sep 19 22:16:20 2012
@@ -24,6 +24,9 @@ import org.apache.lucene.util.BytesRef;
/** Expert: Default scoring implementation. */
public class DefaultSimilarity extends TFIDFSimilarity {
+ /** Sole constructor: parameter-free */
+ public DefaultSimilarity() {}
+
/** Implemented as <code>overlap / maxOverlap</code>. */
public float coord(int overlap, int maxOverlap) {
return overlap / (float)maxOverlap;
@@ -76,7 +79,10 @@ public class DefaultSimilarity extends T
return (float)(Math.log(numDocs/(double)(docFreq+1)) + 1.0);
}
- // Default true
+ /**
+ * True if overlap tokens (tokens with a position of increment of zero) are
+ * discounted from the document's length.
+ */
protected boolean discountOverlaps = true;
/** Determines whether overlap tokens (Tokens with
@@ -92,7 +98,10 @@ public class DefaultSimilarity extends T
discountOverlaps = v;
}
- /** @see #setDiscountOverlaps */
+ /**
+ * Returns true if overlap tokens are discounted from the document's length.
+ * @see #setDiscountOverlaps
+ */
public boolean getDiscountOverlaps() {
return discountOverlaps;
}
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Distribution.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Distribution.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Distribution.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Distribution.java Wed Sep 19 22:16:20 2012
@@ -26,6 +26,13 @@ import org.apache.lucene.search.Explanat
* @lucene.experimental
*/
public abstract class Distribution {
+
+ /**
+ * Sole constructor. (For invocation by subclass
+ * constructors, typically implicit.)
+ */
+ public Distribution() {}
+
/** Computes the score. */
public abstract float score(BasicStats stats, float tfn, float lambda);
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DistributionLL.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DistributionLL.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DistributionLL.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DistributionLL.java Wed Sep 19 22:16:20 2012
@@ -25,6 +25,10 @@ package org.apache.lucene.search.similar
* @lucene.experimental
*/
public class DistributionLL extends Distribution {
+
+ /** Sole constructor: parameter-free */
+ public DistributionLL() {}
+
@Override
public final float score(BasicStats stats, float tfn, float lambda) {
return (float)-Math.log(lambda / (tfn + lambda));
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DistributionSPL.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DistributionSPL.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DistributionSPL.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/DistributionSPL.java Wed Sep 19 22:16:20 2012
@@ -26,6 +26,10 @@ package org.apache.lucene.search.similar
* @lucene.experimental
*/
public class DistributionSPL extends Distribution {
+
+ /** Sole constructor: parameter-free */
+ public DistributionSPL() {}
+
@Override
public final float score(BasicStats stats, float tfn, float lambda) {
if (lambda == 1f) {
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/IBSimilarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/IBSimilarity.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/IBSimilarity.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/IBSimilarity.java Wed Sep 19 22:16:20 2012
@@ -18,6 +18,7 @@ package org.apache.lucene.search.similar
*/
import org.apache.lucene.search.Explanation;
+import org.apache.lucene.search.similarities.Normalization.NoNormalization;
/**
* Provides a framework for the family of information-based models, as described
@@ -39,6 +40,32 @@ import org.apache.lucene.search.Explanat
* <p>The framework described in the paper has many similarities to the DFR
* framework (see {@link DFRSimilarity}). It is possible that the two
* Similarities will be merged at one point.</p>
+ * <p>To construct an IBSimilarity, you must specify the implementations for
+ * all three components of the Information-Based model.
+ * <ol>
+ * <li>{@link Distribution}: Probabilistic distribution used to
+ * model term occurrence
+ * <ul>
+ * <li>{@link DistributionLL}: Log-logistic</li>
+ * <li>{@link DistributionLL}: Smoothed power-law</li>
+ * </ul>
+ * </li>
+ * <li>{@link Lambda}: λ<sub>w</sub> parameter of the
+ * probability distribution
+ * <ul>
+ * <li>{@link LambdaDF}: <code>N<sub>w</sub>/N</code> or average
+ * number of documents where w occurs</li>
+ * <li>{@link LambdaTTF}: <code>F<sub>w</sub>/N</code> or
+ * average number of occurrences of w in the collection</li>
+ * </ul>
+ * </li>
+ * <li>{@link Normalization}: Term frequency normalization
+ * <blockquote>Any supported DFR normalization (listed in
+ * {@link DFRSimilarity})</blockquote>
+ * </li>
+ * </ol>
+ * <p>
+ * @see DFRSimilarity
* @lucene.experimental
*/
public class IBSimilarity extends SimilarityBase {
@@ -49,6 +76,16 @@ public class IBSimilarity extends Simila
/** The term frequency normalization. */
protected final Normalization normalization;
+ /**
+ * Creates IBSimilarity from the three components.
+ * <p>
+ * Note that <code>null</code> values are not allowed:
+ * if you want no normalization, instead pass
+ * {@link NoNormalization}.
+ * @param distribution probabilistic distribution modeling term occurrence
+ * @param lambda distribution's λ<sub>w</sub> parameter
+ * @param normalization term frequency normalization
+ */
public IBSimilarity(Distribution distribution,
Lambda lambda,
Normalization normalization) {
@@ -92,14 +129,23 @@ public class IBSimilarity extends Simila
+ normalization.toString();
}
+ /**
+ * Returns the distribution
+ */
public Distribution getDistribution() {
return distribution;
}
+ /**
+ * Returns the distribution's lambda parameter
+ */
public Lambda getLambda() {
return lambda;
}
-
+
+ /**
+ * Returns the term frequency normalization
+ */
public Normalization getNormalization() {
return normalization;
}
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LMDirichletSimilarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LMDirichletSimilarity.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LMDirichletSimilarity.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LMDirichletSimilarity.java Wed Sep 19 22:16:20 2012
@@ -40,13 +40,13 @@ public class LMDirichletSimilarity exten
/** The μ parameter. */
private final float mu;
- /** @param mu the μ parameter. */
+ /** Instantiates the similarity with the provided μ parameter. */
public LMDirichletSimilarity(CollectionModel collectionModel, float mu) {
super(collectionModel);
this.mu = mu;
}
- /** @param mu the μ parameter. */
+ /** Instantiates the similarity with the provided μ parameter. */
public LMDirichletSimilarity(float mu) {
this.mu = mu;
}
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LMJelinekMercerSimilarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LMJelinekMercerSimilarity.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LMJelinekMercerSimilarity.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LMJelinekMercerSimilarity.java Wed Sep 19 22:16:20 2012
@@ -37,14 +37,14 @@ public class LMJelinekMercerSimilarity e
/** The λ parameter. */
private final float lambda;
- /** @param lambda the λ parameter. */
+ /** Instantiates with the specified collectionModel and λ parameter. */
public LMJelinekMercerSimilarity(
CollectionModel collectionModel, float lambda) {
super(collectionModel);
this.lambda = lambda;
}
- /** @param lambda the λ parameter. */
+ /** Instantiates with the specified λ parameter. */
public LMJelinekMercerSimilarity(float lambda) {
this.lambda = lambda;
}
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LMSimilarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LMSimilarity.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LMSimilarity.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LMSimilarity.java Wed Sep 19 22:16:20 2012
@@ -104,6 +104,9 @@ public abstract class LMSimilarity exten
/** The probability that the current term is generated by the collection. */
private float collectionProbability;
+ /**
+ * Creates LMStats for the provided field and query-time boost
+ */
public LMStats(String field, float queryBoost) {
super(field, queryBoost);
}
@@ -142,6 +145,10 @@ public abstract class LMSimilarity exten
* collection, divided by the total number of tokens {@code + 1}.
*/
public static class DefaultCollectionModel implements CollectionModel {
+
+ /** Sole constructor: parameter-free */
+ public DefaultCollectionModel() {}
+
@Override
public float computeProbability(BasicStats stats) {
return (stats.getTotalTermFreq()+1F) / (stats.getNumberOfFieldTokens()+1F);
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Lambda.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Lambda.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Lambda.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Lambda.java Wed Sep 19 22:16:20 2012
@@ -26,6 +26,13 @@ import org.apache.lucene.search.Explanat
* @lucene.experimental
*/
public abstract class Lambda {
+
+ /**
+ * Sole constructor. (For invocation by subclass
+ * constructors, typically implicit.)
+ */
+ public Lambda() {}
+
/** Computes the lambda parameter. */
public abstract float lambda(BasicStats stats);
/** Explains the lambda parameter. */
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LambdaDF.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LambdaDF.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LambdaDF.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LambdaDF.java Wed Sep 19 22:16:20 2012
@@ -24,6 +24,10 @@ import org.apache.lucene.search.Explanat
* @lucene.experimental
*/
public class LambdaDF extends Lambda {
+
+ /** Sole constructor: parameter-free */
+ public LambdaDF() {}
+
@Override
public final float lambda(BasicStats stats) {
return (stats.getDocFreq()+1F) / (stats.getNumberOfDocuments()+1F);
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LambdaTTF.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LambdaTTF.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LambdaTTF.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/LambdaTTF.java Wed Sep 19 22:16:20 2012
@@ -24,6 +24,10 @@ import org.apache.lucene.search.Explanat
* @lucene.experimental
*/
public class LambdaTTF extends Lambda {
+
+ /** Sole constructor: parameter-free */
+ public LambdaTTF() {}
+
@Override
public final float lambda(BasicStats stats) {
return (stats.getTotalTermFreq()+1F) / (stats.getNumberOfDocuments()+1F);
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/MultiSimilarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/MultiSimilarity.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/MultiSimilarity.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/MultiSimilarity.java Wed Sep 19 22:16:20 2012
@@ -34,8 +34,11 @@ import org.apache.lucene.util.BytesRef;
* @lucene.experimental
*/
public class MultiSimilarity extends Similarity {
+ /** the sub-similarities used to create the combined score */
protected final Similarity sims[];
+ /** Creates a MultiSimilarity which will sum the scores
+ * of the provided <code>sims</code>. */
public MultiSimilarity(Similarity sims[]) {
this.sims = sims;
}
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Normalization.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Normalization.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Normalization.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Normalization.java Wed Sep 19 22:16:20 2012
@@ -27,6 +27,13 @@ import org.apache.lucene.search.Explanat
* @lucene.experimental
*/
public abstract class Normalization {
+
+ /**
+ * Sole constructor. (For invocation by subclass
+ * constructors, typically implicit.)
+ */
+ public Normalization() {}
+
/** Returns the normalized term frequency.
* @param len the field length. */
public abstract float tfn(BasicStats stats, float tf, float len);
@@ -50,6 +57,10 @@ public abstract class Normalization {
/** Implementation used when there is no normalization. */
public static final class NoNormalization extends Normalization {
+
+ /** Sole constructor: parameter-free */
+ public NoNormalization() {}
+
@Override
public final float tfn(BasicStats stats, float tf, float len) {
return tf;
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationH1.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationH1.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationH1.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationH1.java Wed Sep 19 22:16:20 2012
@@ -30,10 +30,18 @@ package org.apache.lucene.search.similar
public class NormalizationH1 extends Normalization {
private final float c;
+ /**
+ * Creates NormalizationH1 with the supplied parameter <code>c</code>.
+ * @param c hyper-parameter that controls the term frequency
+ * normalization with respect to the document length.
+ */
public NormalizationH1(float c) {
this.c = c;
}
+ /**
+ * Calls {@link #NormalizationH1(float) NormalizationH1(1)}
+ */
public NormalizationH1() {
this(1);
}
@@ -48,6 +56,10 @@ public class NormalizationH1 extends Nor
return "1";
}
+ /**
+ * Returns the <code>c</code> parameter.
+ * @see #NormalizationH1(float)
+ */
public float getC() {
return c;
}
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationH2.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationH2.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationH2.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationH2.java Wed Sep 19 22:16:20 2012
@@ -32,10 +32,18 @@ import static org.apache.lucene.search.s
public class NormalizationH2 extends Normalization {
private final float c;
+ /**
+ * Creates NormalizationH2 with the supplied parameter <code>c</code>.
+ * @param c hyper-parameter that controls the term frequency
+ * normalization with respect to the document length.
+ */
public NormalizationH2(float c) {
this.c = c;
}
+ /**
+ * Calls {@link #NormalizationH2(float) NormalizationH2(1)}
+ */
public NormalizationH2() {
this(1);
}
@@ -50,6 +58,10 @@ public class NormalizationH2 extends Nor
return "2";
}
+ /**
+ * Returns the <code>c</code> parameter.
+ * @see #NormalizationH2(float)
+ */
public float getC() {
return c;
}
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationH3.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationH3.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationH3.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationH3.java Wed Sep 19 22:16:20 2012
@@ -24,10 +24,17 @@ package org.apache.lucene.search.similar
public class NormalizationH3 extends Normalization {
private final float mu;
+ /**
+ * Calls {@link #NormalizationH3(float) NormalizationH3(800)}
+ */
public NormalizationH3() {
this(800F);
}
+ /**
+ * Creates NormalizationH3 with the supplied parameter <code>μ</code>.
+ * @param mu smoothing parameter <code>μ</code>
+ */
public NormalizationH3(float mu) {
this.mu = mu;
}
@@ -42,6 +49,10 @@ public class NormalizationH3 extends Nor
return "3(" + mu + ")";
}
+ /**
+ * Returns the parameter <code>μ</code>
+ * @see #NormalizationH3(float)
+ */
public float getMu() {
return mu;
}
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationZ.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationZ.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationZ.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/NormalizationZ.java Wed Sep 19 22:16:20 2012
@@ -24,10 +24,18 @@ package org.apache.lucene.search.similar
public class NormalizationZ extends Normalization {
final float z;
+ /**
+ * Calls {@link #NormalizationZ(float) NormalizationZ(0.3)}
+ */
public NormalizationZ() {
this(0.30F);
}
+ /**
+ * Creates NormalizationZ with the supplied parameter <code>z</code>.
+ * @param z represents <code>A/(A+1)</code> where <code>A</code>
+ * measures the specificity of the language.
+ */
public NormalizationZ(float z) {
this.z = z;
}
@@ -42,6 +50,10 @@ public class NormalizationZ extends Norm
return "Z(" + z + ")";
}
+ /**
+ * Returns the parameter <code>z</code>
+ * @see #NormalizationZ(float)
+ */
public float getZ() {
return z;
}
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/PerFieldSimilarityWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/PerFieldSimilarityWrapper.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/PerFieldSimilarityWrapper.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/PerFieldSimilarityWrapper.java Wed Sep 19 22:16:20 2012
@@ -34,6 +34,12 @@ import org.apache.lucene.search.TermStat
* @lucene.experimental
*/
public abstract class PerFieldSimilarityWrapper extends Similarity {
+
+ /**
+ * Sole constructor. (For invocation by subclass
+ * constructors, typically implicit.)
+ */
+ public PerFieldSimilarityWrapper() {}
@Override
public final void computeNorm(FieldInvertState state, Norm norm) {
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Similarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Similarity.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Similarity.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/Similarity.java Wed Sep 19 22:16:20 2012
@@ -109,6 +109,12 @@ import org.apache.lucene.util.SmallFloat
*/
public abstract class Similarity {
+ /**
+ * Sole constructor. (For invocation by subclass
+ * constructors, typically implicit.)
+ */
+ public Similarity() {}
+
/** Hook to integrate coordinate-level matching.
* <p>
* By default this is disabled (returns <code>1</code>), as with
@@ -193,6 +199,13 @@ public abstract class Similarity {
* Frequencies are integers (the term or phrase frequency within the document)
*/
public static abstract class ExactSimScorer {
+
+ /**
+ * Sole constructor. (For invocation by subclass
+ * constructors, typically implicit.)
+ */
+ public ExactSimScorer() {}
+
/**
* Score a single document
* @param doc document id
@@ -224,6 +237,13 @@ public abstract class Similarity {
* {@link SloppySimScorer#computeSlopFactor(int)}.
*/
public static abstract class SloppySimScorer {
+
+ /**
+ * Sole constructor. (For invocation by subclass
+ * constructors, typically implicit.)
+ */
+ public SloppySimScorer() {}
+
/**
* Score a single document
* @param doc document id within the inverted index segment
@@ -259,6 +279,12 @@ public abstract class Similarity {
*/
public static abstract class SimWeight {
+ /**
+ * Sole constructor. (For invocation by subclass
+ * constructors, typically implicit.)
+ */
+ public SimWeight() {}
+
/** The value for normalization of contained query clauses (e.g. sum of squared weights).
* <p>
* NOTE: a Similarity implementation might not use any query normalization at all,
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/SimilarityBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/SimilarityBase.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/SimilarityBase.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/SimilarityBase.java Wed Sep 19 22:16:20 2012
@@ -48,9 +48,18 @@ public abstract class SimilarityBase ext
/** For {@link #log2(double)}. Precomputed for efficiency reasons. */
private static final double LOG_2 = Math.log(2);
- /** @see #setDiscountOverlaps */
+ /**
+ * True if overlap tokens (tokens with a position of increment of zero) are
+ * discounted from the document's length.
+ */
protected boolean discountOverlaps = true;
+ /**
+ * Sole constructor. (For invocation by subclass
+ * constructors, typically implicit.)
+ */
+ public SimilarityBase() {}
+
/** Determines whether overlap tokens (Tokens with
* 0 position increment) are ignored when computing
* norm. By default this is true, meaning overlap
@@ -64,7 +73,10 @@ public abstract class SimilarityBase ext
discountOverlaps = v;
}
- /** @see #setDiscountOverlaps */
+ /**
+ * Returns true if overlap tokens are discounted from the document's length.
+ * @see #setDiscountOverlaps
+ */
public boolean getDiscountOverlaps() {
return discountOverlaps;
}
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/TFIDFSimilarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/TFIDFSimilarity.java?rev=1387797&r1=1387796&r2=1387797&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/TFIDFSimilarity.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/similarities/TFIDFSimilarity.java Wed Sep 19 22:16:20 2012
@@ -525,6 +525,12 @@ import org.apache.lucene.util.SmallFloat
*/
public abstract class TFIDFSimilarity extends Similarity {
+ /**
+ * Sole constructor. (For invocation by subclass
+ * constructors, typically implicit.)
+ */
+ public TFIDFSimilarity() {}
+
/** Computes a score factor based on the fraction of all query terms that a
* document contains. This value is multiplied into scores.
*