Index: src/test/org/apache/lucene/index/TestIndexWriter.java =================================================================== --- src/test/org/apache/lucene/index/TestIndexWriter.java (revision 1039740) +++ src/test/org/apache/lucene/index/TestIndexWriter.java (working copy) @@ -49,6 +49,8 @@ import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; +import org.apache.lucene.search.Similarity; +import org.apache.lucene.search.SimilarityDelegator; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.PhraseQuery; import org.apache.lucene.search.Query; @@ -4942,4 +4944,21 @@ dir.close(); } + + public void testCustomSimilarity() throws Exception { + Directory dir = new RAMDirectory(); + IndexWriter w = new IndexWriter(dir, new WhitespaceAnalyzer(), IndexWriter.MaxFieldLength.UNLIMITED); + final boolean[] called = new boolean[1]; + w.setSimilarity(new SimilarityDelegator(Similarity.getDefault()) { + public float lengthNorm(String fieldName, int numTerms) { + called[0] = true; + return super.lengthNorm(fieldName, numTerms); + } + }); + Document doc = new Document(); + doc.add(new Field("f", "some text", Field.Store.NO, Field.Index.ANALYZED)); + w.addDocument(doc); + w.close(); + assertTrue(called[0]); + } }