You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2012/01/17 05:00:30 UTC

svn commit: r1232289 - in /lucene/dev/branches/branch_3x: lucene/contrib/ lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/ lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/ lucene/contrib/spellchecker/src/...

Author: rmuir
Date: Tue Jan 17 04:00:29 2012
New Revision: 1232289

URL: http://svn.apache.org/viewvc?rev=1232289&view=rev
Log:
SOLR-2888: FSTSuggester refactoring: internal storage is now UTF-8, external sorting (on disk) prevents OOMs even with large data sets (the bottleneck is now FST construction), code cleanups and API cleanups.

Added:
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/BytesRefSorter.java
      - copied unchanged from r1232264, lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/BytesRefSorter.java
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/ExternalRefSorter.java
      - copied, changed from r1232264, lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/ExternalRefSorter.java
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/FSTCompletion.java
      - copied unchanged from r1232264, lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletion.java
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionBuilder.java
      - copied, changed from r1232264, lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionBuilder.java
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionLookup.java
      - copied unchanged from r1232264, lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionLookup.java
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/FloatMagic.java
      - copied unchanged from r1232264, lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/FloatMagic.java
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/InMemorySorter.java
      - copied, changed from r1232264, lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/InMemorySorter.java
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/Sort.java
      - copied, changed from r1232264, lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/Sort.java
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/fst/BytesRefSortersTest.java
      - copied unchanged from r1232264, lucene/dev/trunk/modules/suggest/src/test/org/apache/lucene/search/suggest/fst/BytesRefSortersTest.java
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/fst/FSTCompletionTest.java
      - copied unchanged from r1232264, lucene/dev/trunk/modules/suggest/src/test/org/apache/lucene/search/suggest/fst/FSTCompletionTest.java
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/fst/FloatMagicTest.java
      - copied unchanged from r1232264, lucene/dev/trunk/modules/suggest/src/test/org/apache/lucene/search/suggest/fst/FloatMagicTest.java
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/fst/LargeInputFST.java
      - copied unchanged from r1232264, lucene/dev/trunk/modules/suggest/src/test/org/apache/lucene/search/suggest/fst/LargeInputFST.java
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/fst/TestSort.java
      - copied unchanged from r1232264, lucene/dev/trunk/modules/suggest/src/test/org/apache/lucene/search/suggest/fst/TestSort.java
Modified:
    lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/FSTLookup.java
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/LookupBenchmarkTest.java
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/PersistenceTest.java
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/fst/FSTLookupTest.java
    lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/util/fst/FST.java
    lucene/dev/branches/branch_3x/solr/CHANGES.txt
    lucene/dev/branches/branch_3x/solr/core/src/java/org/apache/solr/spelling/suggest/fst/FSTLookupFactory.java

Modified: lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt?rev=1232289&r1=1232288&r2=1232289&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt Tue Jan 17 04:00:29 2012
@@ -59,6 +59,14 @@ Changes in runtime behavior
  * LUCENE-3626: PKIndexSplitter and MultiPassIndexSplitter now work
    per segment.  (Uwe Schindler)
 
+Optimizations
+
+* SOLR-2888: FSTSuggester refactoring: internal storage is now UTF-8, 
+  external sorting (on disk) prevents OOMs even with large data sets
+  (the bottleneck is now FST construction), code cleanups and API cleanups.
+  You should use FSTCompletionLookup (the old FSTLookup impl is deprecated).
+  (Dawid Weiss, Robert Muir)
+
 Bug Fixes
 
  * LUCENE-3600: BlockJoinQuery now supports parent docs that have no

Copied: lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/ExternalRefSorter.java (from r1232264, lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/ExternalRefSorter.java)
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/ExternalRefSorter.java?p2=lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/ExternalRefSorter.java&p1=lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/ExternalRefSorter.java&r1=1232264&r2=1232289&rev=1232289&view=diff
==============================================================================
--- lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/ExternalRefSorter.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/ExternalRefSorter.java Tue Jan 17 04:00:29 2012
@@ -25,14 +25,12 @@ public class ExternalRefSorter implement
     this.writer = new Sort.ByteSequencesWriter(input);
   }
 
-  @Override
   public void add(BytesRef utf8) throws IOException {
     if (writer == null)
       throw new IllegalStateException();
     writer.write(utf8);
   }
 
-  @Override
   public Iterator<BytesRef> iterator() throws IOException {
     if (sorted == null) {
       closeWriter();
@@ -57,7 +55,6 @@ public class ExternalRefSorter implement
   /**
    * Removes any written temporary files.
    */
-  @Override
   public void close() throws IOException {
     try {
       closeWriter();
@@ -79,12 +76,10 @@ public class ExternalRefSorter implement
       this.next = reader.read();
     }
 
-    @Override
     public boolean hasNext() {
       return next != null;
     }
     
-    @Override
     public BytesRef next() {
       if (next == null) throw new NoSuchElementException();
       BytesRef r = new BytesRef(next);
@@ -99,7 +94,6 @@ public class ExternalRefSorter implement
       return r;
     }
 
-    @Override
     public void remove() { throw new UnsupportedOperationException(); }
   }
 }

Copied: lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionBuilder.java (from r1232264, lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionBuilder.java)
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionBuilder.java?p2=lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionBuilder.java&p1=lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionBuilder.java&r1=1232264&r2=1232289&rev=1232289&view=diff
==============================================================================
--- lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionBuilder.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionBuilder.java Tue Jan 17 04:00:29 2012
@@ -217,7 +217,7 @@ public class FSTCompletionBuilder {
     final Object empty = outputs.getNoOutput();
     final Builder<Object> builder = new Builder<Object>(
         FST.INPUT_TYPE.BYTE1, 0, 0, true, true, 
-        shareMaxTailLength, outputs, null);
+        shareMaxTailLength, outputs);
     
     BytesRef scratch = new BytesRef();
     final IntsRef scratchIntsRef = new IntsRef();

Modified: lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/FSTLookup.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/FSTLookup.java?rev=1232289&r1=1232288&r2=1232289&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/FSTLookup.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/FSTLookup.java Tue Jan 17 04:00:29 2012
@@ -90,7 +90,9 @@ import org.apache.lucene.store.OutputStr
  * 
  * <p>"alphabetically" in any of the documentation above indicates utf16 codepoint order, 
  * nothing else.
+ * @deprecated Use {@link FSTCompletionLookup} instead.
  */
+@Deprecated
 public class FSTLookup extends Lookup {
 
   public FSTLookup() {

Copied: lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/InMemorySorter.java (from r1232264, lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/InMemorySorter.java)
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/InMemorySorter.java?p2=lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/InMemorySorter.java&p1=lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/InMemorySorter.java&r1=1232264&r2=1232289&rev=1232289&view=diff
==============================================================================
--- lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/InMemorySorter.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/InMemorySorter.java Tue Jan 17 04:00:29 2012
@@ -13,13 +13,11 @@ public final class InMemorySorter implem
   
   private boolean closed = false;
 
-  @Override
   public void add(BytesRef utf8) {
     if (closed) throw new IllegalStateException();
     refs.add(BytesRef.deepCopyOf(utf8));
   }
 
-  @Override
   public Iterator<BytesRef> iterator() {
     closed = true;
     Collections.sort(refs, BytesRef.getUTF8SortedAsUnicodeComparator());

Copied: lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/Sort.java (from r1232264, lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/Sort.java)
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/Sort.java?p2=lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/Sort.java&p1=lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/Sort.java&r1=1232264&r2=1232289&rev=1232289&view=diff
==============================================================================
--- lucene/dev/trunk/modules/suggest/src/java/org/apache/lucene/search/suggest/fst/Sort.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/Sort.java Tue Jan 17 04:00:29 2012
@@ -275,8 +275,11 @@ public final class Sort {
     long start = System.currentTimeMillis();
 
     ByteSequencesWriter out = new ByteSequencesWriter(outputFile);
-
-    PriorityQueue<FileAndTop> queue = new PriorityQueue<FileAndTop>(merges.size()) {
+    final int size = merges.size();
+    PriorityQueue<FileAndTop> queue = new PriorityQueue<FileAndTop>() {
+      {
+        initialize(size);
+      }
       protected boolean lessThan(FileAndTop a, FileAndTop b) {
         return a.current.compareTo(b.current) < 0;
       }
@@ -333,9 +336,9 @@ public final class Sort {
     int linesRead = 0;
     while ((line = reader.read()) != null) {
       if (linesRead + 1 >= data.length) {
-        data = Arrays.copyOf(data,
-            ArrayUtil.oversize(linesRead + MIN_EXPECTED_GROWTH, 
-                RamUsageEstimator.NUM_BYTES_OBJECT_REF));
+        byte[][] newData = new byte[ArrayUtil.oversize(linesRead + MIN_EXPECTED_GROWTH, RamUsageEstimator.NUM_BYTES_OBJECT_REF)][];
+        System.arraycopy(data, 0, newData, 0, data.length);
+        data = newData;
       }
       data[linesRead++] = line;
 
@@ -399,7 +402,6 @@ public final class Sort {
     /**
      * Closes the provided {@link DataOutput} if it is {@link Closeable}.
      */
-    @Override
     public void close() throws IOException {
       if (os instanceof Closeable) {
         ((Closeable) os).close();
@@ -473,7 +475,6 @@ public final class Sort {
     /**
      * Closes the provided {@link DataInput} if it is {@link Closeable}.
      */
-    @Override
     public void close() throws IOException {
       if (is instanceof Closeable) {
         ((Closeable) is).close();

Modified: lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/LookupBenchmarkTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/LookupBenchmarkTest.java?rev=1232289&r1=1232288&r2=1232289&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/LookupBenchmarkTest.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/LookupBenchmarkTest.java Tue Jan 17 04:00:29 2012
@@ -32,6 +32,7 @@ import java.util.concurrent.Callable;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.RamUsageEstimator;
 import org.apache.lucene.search.suggest.Lookup;
+import org.apache.lucene.search.suggest.fst.FSTCompletionLookup;
 import org.apache.lucene.search.suggest.fst.FSTLookup;
 import org.apache.lucene.search.suggest.jaspell.JaspellLookup;
 import org.apache.lucene.search.suggest.tst.TSTLookup;
@@ -48,7 +49,7 @@ public class LookupBenchmarkTest extends
   private final List<Class<? extends Lookup>> benchmarkClasses = Arrays.asList(
       JaspellLookup.class, 
       TSTLookup.class,
-      FSTLookup.class);
+      FSTCompletionLookup.class);
 
   private final static int rounds = 15;
   private final static int warmup = 5;

Modified: lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/PersistenceTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/PersistenceTest.java?rev=1232289&r1=1232288&r2=1232289&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/PersistenceTest.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/PersistenceTest.java Tue Jan 17 04:00:29 2012
@@ -19,6 +19,7 @@ package org.apache.lucene.search.suggest
 import java.io.File;
 
 import org.apache.lucene.search.suggest.Lookup;
+import org.apache.lucene.search.suggest.fst.FSTCompletionLookup;
 import org.apache.lucene.search.suggest.fst.FSTLookup;
 import org.apache.lucene.search.suggest.jaspell.JaspellLookup;
 import org.apache.lucene.search.suggest.tst.TSTLookup;
@@ -51,7 +52,7 @@ public class PersistenceTest extends Luc
   }
 
   public void testFSTPersistence() throws Exception {
-    runTest(FSTLookup.class, false);
+    runTest(FSTCompletionLookup.class, false);
   }
   
   private void runTest(Class<? extends Lookup> lookupClass,

Modified: lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/fst/FSTLookupTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/fst/FSTLookupTest.java?rev=1232289&r1=1232288&r2=1232289&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/fst/FSTLookupTest.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/fst/FSTLookupTest.java Tue Jan 17 04:00:29 2012
@@ -33,7 +33,9 @@ import org.apache.lucene.search.suggest.
 
 /**
  * Unit tests for {@link FSTLookup}.
+ * @deprecated Just to test the old API works
  */
+@Deprecated
 public class FSTLookupTest extends LuceneTestCase {
   public static TermFreq tf(String t, float v) {
     return new TermFreq(t, v);

Modified: lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/util/fst/FST.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/util/fst/FST.java?rev=1232289&r1=1232288&r2=1232289&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/util/fst/FST.java (original)
+++ lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/util/fst/FST.java Tue Jan 17 04:00:29 2012
@@ -17,14 +17,18 @@ package org.apache.lucene.util.fst;
  * limitations under the License.
  */
 
+import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.OutputStream;
 
 import org.apache.lucene.store.DataInput;
 import org.apache.lucene.store.DataOutput;
+import org.apache.lucene.store.InputStreamDataInput;
 import org.apache.lucene.store.OutputStreamDataOutput;
 import org.apache.lucene.util.ArrayUtil;
 import org.apache.lucene.util.CodecUtil;
@@ -364,6 +368,25 @@ public class FST<T> {
       }
     }
   }
+  
+  /**
+   * Reads an automaton from a file. 
+   */
+  public static <T> FST<T> read(File file, Outputs<T> outputs) throws IOException {
+    InputStream is = new BufferedInputStream(new FileInputStream(file));
+    boolean success = false;
+    try {
+      FST<T> fst = new FST<T>(new InputStreamDataInput(is), outputs);
+      success = true;
+      return fst;
+    } finally {
+      if (success) { 
+        IOUtils.close(is);
+      } else {
+        IOUtils.closeWhileHandlingException(is); 
+      }
+    }
+  }
 
   private void writeLabel(int v) throws IOException {
     assert v >= 0: "v=" + v;

Modified: lucene/dev/branches/branch_3x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/CHANGES.txt?rev=1232289&r1=1232288&r2=1232289&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_3x/solr/CHANGES.txt Tue Jan 17 04:00:29 2012
@@ -70,6 +70,10 @@ Optimizations
 * SOLR-3012: Move System.getProperty("type") in postData() to main() and add type argument so that
   the client applications of SimplePostTool can set content type via method argument. (koji)
 
+* SOLR-2888: FSTSuggester refactoring: internal storage is now UTF-8, 
+  external sorting (on disk) prevents OOMs even with large data sets
+  (the bottleneck is now FST construction), code cleanups and API cleanups.
+  (Dawid Weiss, Robert Muir)
 
 Bug Fixes
 ----------------------

Modified: lucene/dev/branches/branch_3x/solr/core/src/java/org/apache/solr/spelling/suggest/fst/FSTLookupFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/core/src/java/org/apache/solr/spelling/suggest/fst/FSTLookupFactory.java?rev=1232289&r1=1232288&r2=1232289&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/core/src/java/org/apache/solr/spelling/suggest/fst/FSTLookupFactory.java (original)
+++ lucene/dev/branches/branch_3x/solr/core/src/java/org/apache/solr/spelling/suggest/fst/FSTLookupFactory.java Tue Jan 17 04:00:29 2012
@@ -18,13 +18,13 @@ package org.apache.solr.spelling.suggest
  */
 
 import org.apache.lucene.search.suggest.Lookup;
-import org.apache.lucene.search.suggest.fst.FSTLookup;
+import org.apache.lucene.search.suggest.fst.FSTCompletionLookup;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.spelling.suggest.LookupFactory;
 
 /**
- * Factory for {@link FSTLookup}
+ * Factory for {@link FSTCompletionLookup}
  */
 public class FSTLookupFactory extends LookupFactory {
 
@@ -55,6 +55,6 @@ public class FSTLookupFactory extends Lo
     ? Boolean.valueOf(params.get(EXACT_MATCH_FIRST).toString())
     : true;
 
-    return new FSTLookup(buckets, exactMatchFirst);
+    return new FSTCompletionLookup(buckets, exactMatchFirst);
   }
 }