Index: lucene/CHANGES.txt =================================================================== --- lucene/CHANGES.txt (revision 1450291) +++ lucene/CHANGES.txt (working copy) @@ -271,6 +271,8 @@ AnalysisSPILoader when doing reload (e.g. from Solr). (Uwe Schindler, Hossman) +* LUCENE-4802: Don't compute norms for drill-down facet fields. (Mike McCandless) + Documentation * LUCENE-4718: Fixed documentation of oal.queryparser.classic. Index: lucene/facet/src/test/org/apache/lucene/facet/search/TestDemoFacets.java =================================================================== --- lucene/facet/src/test/org/apache/lucene/facet/search/TestDemoFacets.java (revision 1450291) +++ lucene/facet/src/test/org/apache/lucene/facet/search/TestDemoFacets.java (working copy) @@ -21,15 +21,19 @@ import java.io.IOException; import java.io.PrintStream; import java.util.ArrayList; +import java.util.Collections; import java.util.List; +import org.apache.lucene.analysis.MockAnalyzer; import org.apache.lucene.document.Document; +import org.apache.lucene.document.Field; import org.apache.lucene.facet.FacetTestCase; import org.apache.lucene.facet.FacetTestUtils; import org.apache.lucene.facet.index.FacetFields; import org.apache.lucene.facet.params.FacetSearchParams; import org.apache.lucene.facet.taxonomy.CategoryPath; import org.apache.lucene.facet.taxonomy.TaxonomyReader; +import org.apache.lucene.facet.taxonomy.TaxonomyWriter; import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyReader; import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter; import org.apache.lucene.facet.util.PrintTaxonomyStats; @@ -37,6 +41,9 @@ import org.apache.lucene.index.RandomIndexWriter; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.MatchAllDocsQuery; +import org.apache.lucene.search.similarities.DefaultSimilarity; +import org.apache.lucene.search.similarities.PerFieldSimilarityWrapper; +import org.apache.lucene.search.similarities.Similarity; import org.apache.lucene.store.Directory; public class TestDemoFacets extends FacetTestCase { @@ -134,4 +141,30 @@ taxoDir.close(); } + public void testReallyNoNormsForDrillDown() throws Exception { + Directory dir = newDirectory(); + Directory taxoDir = newDirectory(); + IndexWriterConfig iwc = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())); + iwc.setSimilarity(new PerFieldSimilarityWrapper() { + final Similarity sim = new DefaultSimilarity(); + + @Override + public Similarity get(String name) { + assertEquals("field", name); + return sim; + } + }); + RandomIndexWriter writer = new RandomIndexWriter(random(), dir, iwc); + TaxonomyWriter taxoWriter = new DirectoryTaxonomyWriter(taxoDir, IndexWriterConfig.OpenMode.CREATE); + FacetFields facetFields = new FacetFields(taxoWriter); + + Document doc = new Document(); + doc.add(newTextField("field", "text", Field.Store.NO)); + facetFields.addFields(doc, Collections.singletonList(new CategoryPath("a/path", '/'))); + writer.addDocument(doc); + writer.close(); + taxoWriter.close(); + dir.close(); + taxoDir.close(); + } } Index: lucene/facet/src/java/org/apache/lucene/facet/index/FacetFields.java =================================================================== --- lucene/facet/src/java/org/apache/lucene/facet/index/FacetFields.java (revision 1450291) +++ lucene/facet/src/java/org/apache/lucene/facet/index/FacetFields.java (working copy) @@ -5,8 +5,8 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; +import java.util.Map.Entry; import java.util.Map; -import java.util.Map.Entry; import org.apache.lucene.document.BinaryDocValuesField; import org.apache.lucene.document.Document; @@ -66,6 +66,7 @@ private static final FieldType DRILL_DOWN_TYPE = new FieldType(TextField.TYPE_NOT_STORED); static { DRILL_DOWN_TYPE.setIndexOptions(IndexOptions.DOCS_ONLY); + DRILL_DOWN_TYPE.setOmitNorms(true); DRILL_DOWN_TYPE.freeze(); }