未找到“ org.h2.fulltext.FullTextLucene类”-H2数据库1.4。*不适用于Lucene Core 4。*

问题描述 投票:1回答:1

我编写了一个小的Java工具,但是仍然遇到无法找到类的错误

Class "org.h2.fulltext.FullTextLucene" not found; SQL statement:
CREATE ALIAS IF NOT EXISTS FTL_INIT FOR
"org.h2.fulltext.FullTextLucene.init"; [ 90086-178]
     at org.h2.message.DbException.getJdbcSQLException(DbException.java:344)
     at org.h2.message.DbException.get(DbException.java:167)
     at org.h2.util.Utils.loadUserClass(Utils.java:676)
     at org.h2.engine.FunctionAlias.loadClass(FunctionAlias.java:146)
     at org.h2.engine.FunctionAlias.load(FunctionAlias.java:122)
     at org.h2.engine.FunctionAlias.init(FunctionAlias.java:107)
     at org.h2.engine.FunctionAlias.newInstance(FunctionAlias.java:78)
     at org.h2.command.ddl.CreateFunctionAlias.update(CreateFunctionAlias.java:50)
     at org.h2.command.CommandContainer.update(CommandContainer.java:79)
     at org.h2.command.Command.executeUpdate(Command.java:254)
     at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:186)
     at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:160)
     at database.main(database.java:30) Caused by: java.lang.NoClassDefFoundError: org/apache/lucene/analysis/standard/StandardAnalyzer
     at java.lang.Class.forName0(Native Method)
     at java.lang.Class.forName(Class.java:190)
     at org.h2.util.Utils.loadUserClass(Utils.java:665)
     ... 10 more Caused by: java.lang.ClassNotFoundException: org.apache.lucene.analysis.standard .StandardAnalyzer
     at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
     at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
     at java.security.AccessController.doPrivileged(Native Method)
     at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
     ... 13 more

哪个版本的Lucene Core与H2 1.4.x兼容?我认为我需要Lucene Core 4.x,因为:

  • H2 1.2.x需要Lucene Core 2.x
  • H2 1.3.x需要Lucene Core 3.x
java lucene h2 classnotfoundexception classnotfound
1个回答
1
投票

H2绝对不支持Lucene4.x。查看org.h2.fulltext.FullTextLucene的1.4.178源代码,会发现一个绝对旨在与Lucene 3.x配合使用的类(专门针对Lucene 3.0功能)。

© www.soinside.com 2019 - 2024. All rights reserved.