[英]creating new lucene index no class found error
我正在使用lucene 4.0,我想以这种方式创建一个新的indexWriter
:
IndexWriter index = LuceneUtils.createIndexWriter(indexPath, true);
(它使用indexPath
3.6进行了工作),其中indexPath
是带有索引路径的String
。 我收到此错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/lucene/analysis/SimpleAnalyzer
at lucene.IndexCreator.<init>(IndexCreator.java:25)
at main.Main.main(Main.java:72)
Caused by: java.lang.ClassNotFoundException: org.apache.lucene.analysis.SimpleAnalyzer
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 2 more
我已经读到我需要将lucene-analyzers-common-4.0.0.jar
到项目中,除了lucene-core-4.0.0.jar
,但是我得到了同样的错误。 实际上, lucene-analyzers-common-4.0.0.jar
的SimpleAnalyzer.class
路径不是org.apache.lucene.analysis.SimpleAnalyzer
而是org.apache.lucene.analysis.core.SimpleAnalyzer
。
看来您的课程路径中可能有3.6个jar。 您可以验证是否可能由于传递依赖项而引入了旧版本吗?
您的项目中具有较旧版本的lucene-core jar
。 先前版本中类SimpleAnalyzer的路径是org.apache.lucene.analysis.SimpleAnalyzer
。 在编译期间,系统可以在该路径上找到SimpleAnalyzer
。 但是在运行时,它指的是新版本。 现在,该类存在于lucene-analyzers-common-4.0.0.jar
的另一路径下。 因此,NoClassDefFoundError。
您可以通过阅读以下内容进一步了解它-http://javareferencegv.blogspot.com/2013/10/debugging-javalangnoclassdeffounderror.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.