You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ab...@apache.org on 2010/10/21 00:25:11 UTC

svn commit: r1025783 - in /lucene/dev/branches/branch_3x/solr: CHANGES.txt src/java/org/apache/solr/spelling/suggest/Suggester.java src/test/org/apache/solr/spelling/suggest/SuggesterTest.java

Author: ab
Date: Wed Oct 20 22:25:11 2010
New Revision: 1025783

URL: http://svn.apache.org/viewvc?rev=1025783&view=rev
Log:
SOLR-2173 Suggester should always rebuild Lookup data if Lookup.load fails.

Modified:
    lucene/dev/branches/branch_3x/solr/CHANGES.txt
    lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/spelling/suggest/Suggester.java
    lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/spelling/suggest/SuggesterTest.java

Modified: lucene/dev/branches/branch_3x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/CHANGES.txt?rev=1025783&r1=1025782&r2=1025783&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_3x/solr/CHANGES.txt Wed Oct 20 22:25:11 2010
@@ -238,6 +238,7 @@ New Features
 
 * SOLR-2157 Suggester should return alpha-sorted results when onlyMorePopular=false (ab)
 
+* SOLR-2173 Suggester should always rebuild Lookup data if Lookup.load fails. (ab)
 
 Optimizations
 ----------------------

Modified: lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/spelling/suggest/Suggester.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/spelling/suggest/Suggester.java?rev=1025783&r1=1025782&r2=1025783&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/spelling/suggest/Suggester.java (original)
+++ lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/spelling/suggest/Suggester.java Wed Oct 20 22:25:11 2010
@@ -130,20 +130,10 @@ public class Suggester extends SolrSpell
       if (lookup.load(storeDir)) {
         return;  // loaded ok
       }
+      LOG.debug("load failed, need to build Lookup again");
     }
-    // dictionary based on the current index may need refreshing
-    if (dictionary instanceof HighFrequencyDictionary) {
-      reader = reader.reopen();
-      dictionary = new HighFrequencyDictionary(reader, field, threshold);
-      try {
-        lookup.build(dictionary);
-        if (storeDir != null) {
-          lookup.store(storeDir);
-        }
-      } catch (Exception e) {
-        throw new IOException(e.toString());
-      }
-    }
+    // loading was unsuccessful - build it again
+    build(core, searcher);
   }
 
   public void add(String query, int numHits) {

Modified: lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/spelling/suggest/SuggesterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/spelling/suggest/SuggesterTest.java?rev=1025783&r1=1025782&r2=1025783&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/spelling/suggest/SuggesterTest.java (original)
+++ lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/spelling/suggest/SuggesterTest.java Wed Oct 20 22:25:11 2010
@@ -66,6 +66,20 @@ public class SuggesterTest extends SolrT
         "//lst[@name='spellcheck']/lst[@name='suggestions']/lst[@name='ac']/arr[@name='suggestion']/str[2][.='accommodate']"
     );
   }
+  
+  @Test
+  public void testReload() throws Exception {
+    addDocs();
+    assertU(commit());
+    assertQ(req("qt","/suggest", "q","ac", SpellingParams.SPELLCHECK_COUNT, "2", SpellingParams.SPELLCHECK_ONLY_MORE_POPULAR, "true"),
+        "//lst[@name='spellcheck']/lst[@name='suggestions']/lst[@name='ac']/int[@name='numFound'][.='2']");
+    assertU(adoc("id", "4",
+        "text", "actually"
+       ));
+    assertU(commit());
+    assertQ(req("qt","/suggest", "q","ac", SpellingParams.SPELLCHECK_COUNT, "2", SpellingParams.SPELLCHECK_ONLY_MORE_POPULAR, "true"),
+    "//lst[@name='spellcheck']/lst[@name='suggestions']/lst[@name='ac']/int[@name='numFound'][.='2']");
+  }
 
   
   private TermFreqIterator getTFIT() {