Index: contrib/queries/src/java/org/apache/lucene/search/similar/MoreLikeThis.java
===================================================================
--- contrib/queries/src/java/org/apache/lucene/search/similar/MoreLikeThis.java	(revision 542766)
+++ contrib/queries/src/java/org/apache/lucene/search/similar/MoreLikeThis.java	(working copy)
@@ -86,7 +86,7 @@
  *
  * This class has lots of options to try to make it efficient and flexible.
  * See the body of {@link #main main()} below in the source for real code, or
- * if you want pseudo code, the simpliest possible usage is as follows. The bold
+ * if you want pseudo code, the simplest possible usage is as follows. The bold
  * fragment is specific to this class.
  *
  * <code><pre>
@@ -108,7 +108,7 @@
  * <ol>
  * <li> do your normal, Lucene setup for searching,
  * <li> create a MoreLikeThis,
- * <li> get the text of the doc you want to find similaries to
+ * <li> get the text of the doc you want to find similarities to
  * <li> then call one of the like() calls to generate a similarity query
  * <li> call the searcher to find the similar docs
  * </ol>
@@ -276,7 +276,7 @@
     /**
      * For idf() calculations.
      */
-    private Similarity similarity = new DefaultSimilarity();
+    private Similarity similarity;
 
     /**
      * IndexReader to use
@@ -285,12 +285,23 @@
 
     /**
      * Constructor requiring an IndexReader.
+     * Uses default similarity
      */
     public MoreLikeThis(IndexReader ir) {
         this.ir = ir;
+        this.similarity = new DefaultSimilarity();
     }
 
     /**
+     * Constructor requiring an IndexReader.
+     * Uses specified similarity
+     */
+    public MoreLikeThis(IndexReader ir, Similarity similarity) {
+        this.ir = ir;
+        this.similarity = similarity;
+    }
+    
+    /**
      * Returns an analyzer that will be used to parse source doc with. The default analyzer
      * is the {@link #DEFAULT_ANALYZER}.
      *
@@ -312,6 +323,20 @@
     }
 
     /**
+     * Set the Similarity used for idf calculations
+     */
+    public void setSimilarity(Similarity similarity) {
+      this.similarity = similarity;
+    }
+
+    /**
+     * Get the Similarity used for idf calculations
+     */
+    public Similarity getSimilarity() {
+      return similarity;
+    }
+    
+    /**
      * Returns the frequency below which terms will be ignored in the source doc. The default
      * frequency is the {@link #DEFAULT_MIN_TERM_FREQ}.
      *
@@ -824,7 +849,7 @@
 	 * @param term The word being considered
 	 * @return true if should be ignored, false if should be used in further analysis
 	 */
-	private boolean isNoiseWord(String term)
+	protected boolean isNoiseWord(String term)
 	{
 		int len = term.length();
 		if (minWordLen > 0 && len < minWordLen) {
