我正在尝试在 java 中实现 google 的“你的意思是”功能。我在互联网上发现了一些代码说它可以正常工作,但在尝试运行它时却给我一个错误。我认为这与目录创建有关,这是我不完全理解的代码的唯一部分。
这是代码,你能帮我看看有什么问题吗?提前致谢!
public static void main(String[] args) throws Exception {
File dir = new File("C:/Users/Lala");
Directory directory = FSDirectory.open(dir);
SpellChecker spellChecker = new SpellChecker(directory);
spellChecker.indexDictionary(
new PlainTextDictionary(new File("fulldictionary00.txt")));
String wordForSuggestions = "hwllo";
int suggestionsNumber = 5;
String[] suggestions = spellChecker.
suggestSimilar(wordForSuggestions, suggestionsNumber);
if (suggestions!=null && suggestions.length>0) {
for (String word : suggestions) {
System.out.println("Did you mean:" + word);
}
}
else {
System.out.println("No suggestions found for word:"+wordForSuggestions);
}
}
该文件fulldictionary00.txt
是正确格式的纯文本文件。
我得到的错误是在第 18 行:
SpellChecker spellChecker = new SpellChecker(directory);
所以它与目录创建有关。我正在粘贴我得到的错误,以防万一你看到它时有任何想法。
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/lucene/document/Fieldable at did_you_mean.main(did_you_mean.java:18) Caused by:
java.lang.ClassNotFoundException: org.apache.lucene.document.Fieldable