java - 嵌入式 Neo4j 需要哪些 jar?

标签 java lucene neo4j

我正在寻找 this question 的更新答案。以前,一个最小的 Neo4j“Hello World”应用程序需要两个 jar。现在它显然需要一些其他 jar ,但我不知道是哪些。

如果我按照其他问题中的建议包含 neo4j-kernel-2.1.2 和 geronimo-jta_1.1_spec-1.1.1,则会收到此错误:

java.lang.ClassNotFoundException: org.neo4j.collection.primitive.PrimitiveLongIterator
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)

如果我添加 neo4j-primitive-collections-2.1.2,则会出现以下根本原因的错误:

Caused by: java.lang.IllegalArgumentException: No schema index provider org.neo4j.kernel.api.index.SchemaIndexProvider found.

this question 的解答建议我需要 neo4j-lucene-index。当我添加该 jar 时,出现此错误:

Caused by: java.lang.ClassNotFoundException: org.apache.lucene.store.Directory
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)

最后,当我添加 lucene-core 时,出现此错误:

Caused by: java.lang.ClassNotFoundException: org.apache.lucene.document.Fieldable
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)

我需要添加什么才能克服这个问题?

最佳答案

我相信我已经找到了 Neo4j 2.x 的最小依赖项集。我最初尝试使用 lucene-core-4.9.0,但 org.apache.lucene.document.Fieldable 接口(interface)在版本 3.6 之后的某个时间从该库中删除。 2.因此,最小的 jar 集是:

neo4j-kernel (2.1.2)
neo4j-primitive-collections (2.1.2)
neo4j-lucene-index (2.1.2)
lucene-core (3.6.2)
jta (1.1)

它们的重量约为 4.5 MB,这比我想要的要大,但我想我可以忍受。我还被告知,neo4j-lucene-index(这需要 lucene-core)并不是严格必需的。与jta 一样,它实际上只是所需接口(interface)的一种可能实现。但我不知道还有其他实现。

关于java - 嵌入式 Neo4j 需要哪些 jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24718092/

相关文章:

neo4j - 在 neo4j 中使用 LOAD CSV 创建条件关系

java - 使用lucene自动完成如何放弃某些搜索术语

java - Hibernate 反向一对多映射似乎无法正确处理从 Java 列表中删除项目

java - Firestore - 使用 CountDownLatch 等待任务完成 - 挂起应用程序

java - Netty4 混淆与简单示例

svn - 在 SVN 存储库中搜索 office 文档的工具

apache - Solr 1.4和Solr 3.4有什么区别

neo4j-import 在准备节点索引阶段失败

java - Neo4j CSV 导入类型错误

java - 如何在 Apache Beam Java 中编写带有动态 header 的 CSV 文件