[ http://issues.apache.org/jira/browse/LUCENE-632?page=comments#action_12423128 ] Karsten Dello commented on LUCENE-632: --------------------------------------
Here is the code. It is copied from http://today.java.net/pub/a/today/2005/08/09/didyoumean.html?page=2#generating_spell_index I am pretty sure this code worked with 1.4.3? package de.kobv.lucene.spellcheck; import java.io.File; import java.io.IOException; import org.apache.lucene.index.IndexReader; import org.apache.lucene.search.spell.Dictionary; import org.apache.lucene.search.spell.LuceneDictionary; import org.apache.lucene.search.spell.SpellChecker; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; public class SpellCheckIndexer { public final static String LUCENEFIELD="AlleFelder"; public static void main(String [] args) { if (args.length!=2) { System.out.println("usage: java de.kobv.lucene.spellcheck.SpellCheckIndexer <sourceIndexDirectory> <spellCheckIndexDirectory>"); return; } String indexDir=args[0]; String spellcheckpath=args[1]; try { SpellCheckIndexer sci= new SpellCheckIndexer(); System.out.println("creating spell check index at "+new java.util.Date(System.currentTimeMillis())); System.out.println("indexDir:"+indexDir+" spellcheckdir:"+spellcheckpath); Directory d1 = FSDirectory.getDirectory(indexDir,false); // make sure the directory exists File f= new File(spellcheckpath); f.mkdir(); Directory d2= FSDirectory.getDirectory(spellcheckpath,true); sci.createSpellIndex(LUCENEFIELD,d1,d2); System.out.println("finished at"+new java.util.Date(System.currentTimeMillis())); } catch(Exception e) {e.printStackTrace(System.out);} } public void createSpellIndex(String field, Directory originalIndexDirectory, Directory spellIndexDirectory) throws IOException { System.out.println(""+field+" - "+originalIndexDirectory+" - "+spellIndexDirectory); IndexReader indexReader = null; try { indexReader = IndexReader.open(originalIndexDirectory); System.out.println("Index mit "+indexReader.numDocs()+" docs in "+originalIndexDirectory+" geoeffnet."); Dictionary dictionary = new LuceneDictionary(indexReader, field); SpellChecker spellChecker = new SpellChecker(spellIndexDirectory); spellChecker.indexDictionary(dictionary); } catch (Exception e) { e.printStackTrace(); } finally { if (indexReader != null) { indexReader.close(); } } } } > The creation of a spell index from a LuceneDictionary via > SpellChecker.indexDictionary (Dictionary dict) fails starting with 1.9.1 (up > to current svn version) > -------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: LUCENE-632 > URL: http://issues.apache.org/jira/browse/LUCENE-632 > Project: Lucene - Java > Issue Type: Bug > Components: Other > Affects Versions: 1.9, 2.0.0 > Reporter: Karsten Dello > Priority: Minor > > Two different errors in 1.9.1/2.0.0 and current svn version. > 1.9.1/2.0.0: > at the end of indexDictionary (Dictionary dict) > the IndexReader-instance reader is closed. > This causes a NullpointerException because reader has not been initialized > before (neither in that method nor in the constructor). > Uncommenting this line (reader.close()) seems to resolve that issue. > current svn: > the constructor tries to create an IndexSearcher-instance for the specified > path; > as there is no index in that path - it is not created yet - an exception is > thrown. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
