0

Lucene 3.5 で Hibernate Search を使用しており、「もしかして?」を実装しようとしています。スペルチェッカー検索。索引を辞書として使用したい。私が抱えている問題は、indexDirectory のドキュメントが現在のメソッド シグネチャと一致せず、他のソースからの実装方法に関する詳細が見つからないことです。誰かが私を正しい方向に向けることができますか? メソッドの署名自体から解読したものは次のとおりですが、ロック例外が発生するだけです。

Directory directory = FSDirectory.open(FileUtils.toFile(new URL("file:lucene/indexes/")));

IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_35, new                StandardAnalyzer(Version.LUCENE_35));

IndexWriter indexWriter = new IndexWriter(directory, indexWriterConfig);
IndexReader indexReader = IndexReader.open(indexWriter, false);

this.spellChecker = new SpellChecker(directory);
this.spellChecker.indexDictionary(new LuceneDictionary(indexReader, "favorite"), indexWriterConfig, true);
4

1 に答える 1

0

解決策を見つけました。順序は重要です。

Directory directory = FSDirectory.open(FileUtils.toFile(new URL("file:lucene/indexes/")));
this.spellChecker = new SpellChecker(directory);
IndexReader indexReader = IndexReader.open(directory, true);
LuceneDictionary dictionary = new LuceneDictionary(indexReader, "field");
IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_35, new StandardAnalyzer(Version.LUCENE_35));
this.spellChecker.indexDictionary(dictionary, indexWriterConfig, true);
于 2012-12-16T07:46:01.647 に答える