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}: &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 &lambda;<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 &mu; parameter. */
   private final float mu;
   
-  /** @param mu the &mu; parameter. */
+  /** Instantiates the similarity with the provided &mu; parameter. */
   public LMDirichletSimilarity(CollectionModel collectionModel, float mu) {
     super(collectionModel);
     this.mu = mu;
   }
   
-  /** @param mu the &mu; parameter. */
+  /** Instantiates the similarity with the provided &mu; 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 &lambda; parameter. */
   private final float lambda;
   
-  /** @param lambda the &lambda; parameter. */
+  /** Instantiates with the specified collectionModel and &lambda; parameter. */
   public LMJelinekMercerSimilarity(
       CollectionModel collectionModel, float lambda) {
     super(collectionModel);
     this.lambda = lambda;
   }
 
-  /** @param lambda the &lambda; parameter. */
+  /** Instantiates with the specified &lambda; 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>&mu;</code>.
+   * @param mu smoothing parameter <code>&mu;</code>
+   */
   public NormalizationH3(float mu) {
     this.mu = mu;
   }
@@ -42,6 +49,10 @@ public class NormalizationH3 extends Nor
     return "3(" + mu + ")";
   }
   
+  /**
+   * Returns the parameter <code>&mu;</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.
    *