You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2014/03/01 12:44:50 UTC

svn commit: r1573156 - in /lucene/dev/trunk/lucene: CHANGES.txt facet/src/java/org/apache/lucene/facet/FacetsConfig.java facet/src/test/org/apache/lucene/facet/TestFacetsConfig.java

Author: mikemccand
Date: Sat Mar  1 11:44:49 2014
New Revision: 1573156

URL: http://svn.apache.org/r1573156
Log:
LUCENE-5479: make the default dimension config controllable via subclass of FacetsConfig

Modified:
    lucene/dev/trunk/lucene/CHANGES.txt
    lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/FacetsConfig.java
    lucene/dev/trunk/lucene/facet/src/test/org/apache/lucene/facet/TestFacetsConfig.java

Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=1573156&r1=1573155&r2=1573156&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Sat Mar  1 11:44:49 2014
@@ -84,6 +84,9 @@ New Features
 * LUCENE-5482: Improve default TurkishAnalyzer by adding apostrophe
   handling suitable for Turkish.  (Ahmet Arslan via Robert Muir)
 
+* LUCENE-5479: FacetsConfig subclass can now customize the default
+  per-dim facets configuration.  (Rob Audenaerde via Mike McCandless)
+
 API Changes
 
 * LUCENE-5454: Add RandomAccessOrds, an optional extension of SortedSetDocValues

Modified: lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/FacetsConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/FacetsConfig.java?rev=1573156&r1=1573155&r2=1573156&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/FacetsConfig.java (original)
+++ lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/FacetsConfig.java Sat Mar  1 11:44:49 2014
@@ -98,11 +98,22 @@ public class FacetsConfig {
   public FacetsConfig() {
   }
 
+  /** Get the default configuration for new dimensions.  Useful when
+   *  the dimension is not known beforehand and may need different 
+   *  global default settings, like {@code multivalue =
+   *  true}.
+   *
+   *  @return The default configuration to be used for dimensions that 
+   *  are not yet set in the {@link FacetsConfig} */
+  protected DimConfig getDefaultDimConfig(){
+    return DEFAULT_DIM_CONFIG;
+  }
+  
   /** Get the current configuration for a dimension. */
   public synchronized DimConfig getDimConfig(String dimName) {
     DimConfig ft = fieldTypes.get(dimName);
     if (ft == null) {
-      ft = DEFAULT_DIM_CONFIG;
+      ft = getDefaultDimConfig();
     }
     return ft;
   }

Modified: lucene/dev/trunk/lucene/facet/src/test/org/apache/lucene/facet/TestFacetsConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/facet/src/test/org/apache/lucene/facet/TestFacetsConfig.java?rev=1573156&r1=1573155&r2=1573156&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/facet/src/test/org/apache/lucene/facet/TestFacetsConfig.java (original)
+++ lucene/dev/trunk/lucene/facet/src/test/org/apache/lucene/facet/TestFacetsConfig.java Sat Mar  1 11:44:49 2014
@@ -84,5 +84,18 @@ public class TestFacetsConfig extends Fa
     
     IOUtils.close(indexDir, taxoDir);
   }
-  
+
+  /** LUCENE-5479 */
+  public void testCustomDefault() {
+    FacetsConfig config = new FacetsConfig() {
+        @Override
+        protected DimConfig getDefaultDimConfig() {
+          DimConfig config = new DimConfig();
+          config.hierarchical = true;
+          return config;
+        }
+      };
+
+    assertTrue(config.getDimConfig("foobar").hierarchical);
+  }
 }