Author: gsingers
Date: Fri Jun 27 05:35:36 2008
New Revision: 672257

URL: http://svn.apache.org/viewvc?rev=672257&view=rev
Log:
SOLR-609: SpellCheckComps now honors defaults

Modified:
    lucene/solr/trunk/CHANGES.txt
    
lucene/solr/trunk/src/java/org/apache/solr/handler/component/SpellCheckComponent.java

Modified: lucene/solr/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/lucene/solr/trunk/CHANGES.txt?rev=672257&r1=672256&r2=672257&view=diff
==============================================================================
--- lucene/solr/trunk/CHANGES.txt (original)
+++ lucene/solr/trunk/CHANGES.txt Fri Jun 27 05:35:36 2008
@@ -446,6 +446,8 @@
 
 37. SOLR-604: If the spellchecking path is relative, make it relative to the 
Solr Data Directory.  (Shalin Shekhar Mangar via gsingers)
 
+38. SOLR-609: SpellCheckComponent now honors defaults.  (Shalin Shekhar Mangar 
via gsingers)
+
 Other Changes
  1. SOLR-135: Moved common classes to org.apache.solr.common and altered the
     build scripts to make two jars: apache-solr-1.3.jar and 

Modified: 
lucene/solr/trunk/src/java/org/apache/solr/handler/component/SpellCheckComponent.java
URL: 
http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/handler/component/SpellCheckComponent.java?rev=672257&r1=672256&r2=672257&view=diff
==============================================================================
--- 
lucene/solr/trunk/src/java/org/apache/solr/handler/component/SpellCheckComponent.java
 (original)
+++ 
lucene/solr/trunk/src/java/org/apache/solr/handler/component/SpellCheckComponent.java
 Fri Jun 27 05:35:36 2008
@@ -135,6 +135,9 @@
 
   @SuppressWarnings("unchecked")
   protected NamedList initParams;
+  
+  @SuppressWarnings("unchecked")
+  protected SolrParams defaults;
 
   /**
    * Key is the dictionary, value is the SpellChecker for that dictionary name
@@ -148,6 +151,12 @@
   public void init(NamedList args) {
     super.init(args);
     this.initParams = args;
+    if (args != null)   {
+      Object o = args.get("defaults");
+      if (o != null && o instanceof NamedList) {
+        defaults = SolrParams.toSolrParams((NamedList)o);
+      }
+    }
   }
 
   @Override
@@ -187,24 +196,28 @@
     }
     if (tokens != null && tokens.isEmpty() == false) {
       if (spellChecker != null) {
-        int count = params.getInt(SPELLCHECK_COUNT, 1);
+        int count = params.getInt(SPELLCHECK_COUNT, defaults.getInt(
+            SPELLCHECK_COUNT, 1));
         boolean onlyMorePopular = params.getBool(SPELLCHECK_ONLY_MORE_POPULAR,
-                DEFAULT_ONLY_MORE_POPULAR);
+            defaults.getBool(SPELLCHECK_ONLY_MORE_POPULAR,
+                DEFAULT_ONLY_MORE_POPULAR));
         boolean extendedResults = params.getBool(SPELLCHECK_EXTENDED_RESULTS,
-                false);
+            defaults.getBool(SPELLCHECK_EXTENDED_RESULTS, false));
         NamedList response = new SimpleOrderedMap();
         IndexReader reader = rb.req.getSearcher().getReader();
-        boolean collate = params.getBool(SPELLCHECK_COLLATE, false);
-        SpellingResult spellingResult = spellChecker.getSuggestions(tokens, 
reader, count, onlyMorePopular,
-                extendedResults);
+        boolean collate = params.getBool(SPELLCHECK_COLLATE, defaults.getBool(
+            SPELLCHECK_COLLATE, false));
+        SpellingResult spellingResult = spellChecker.getSuggestions(tokens,
+            reader, count, onlyMorePopular, extendedResults);
         if (spellingResult != null) {
-          response.add("suggestions", toNamedList(spellingResult, q, 
extendedResults, collate));
+          response.add("suggestions", toNamedList(spellingResult, q,
+              extendedResults, collate));
           rb.rsp.add("spellcheck", response);
         }
 
       } else {
         throw new SolrException(SolrException.ErrorCode.NOT_FOUND,
-                "Specified dictionary does not exist.");
+            "Specified dictionary does not exist.");
       }
     }
   }


Reply via email to