2012-12-15 5 views
0

나는 Lucene 3.5와 함께 Hibernate Search를 사용하고 있으며 "구현 했습니까?" 맞춤법 검사기 검색. 인덱스를 사전으로 사용하고 싶습니다. 내가 겪고있는 문제는 indexDirectory에 대한 문서가 현재 메서드 시그니처와 일치하지 않으며 다른 소스에서 구현하는 방법에 대한 세부 정보를 찾을 수 없다는 것입니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까? 여기 서명 메소드 자체에서 해독 한 내용이 있지만 잠금 예외가 발생합니다.Hibernate-Search and Lucene 3.5 SpellChecker

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); 

답변

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); 
+0

한 번에 여러 개의 IndexWriters를 열 때 문제가 발생 했습니까? – femtoRgon

+0

수정. 독자를 열면 먼저 자물쇠를 얻지 못하기 때문에 문제가 해결되었습니다. – Doug