【发布时间】:2018-12-23 19:06:07
【问题描述】:
我知道这是this question 的重复 但已经 5 年了,也许现在有人可以提出其他解决方案。
我正在尝试共存 elastic-search 和 neo4j,但它们与 Lucene 依赖项存在冲突。
在我的情况下,我有
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>6.2.1</version>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>3.1.0</version>
</dependency>
elasticsearch 取决于 Lucene v7.2.1 和 neo4j 取决于 v5.5.5
我试图从neo4j 包中排除v5.5.5,但没有找到某些类。我也尝试为elasticsearch 降低Lucene 的版本,但也没有用。
真正困扰我的是elasticsearch 正在定义一个类似于Lucene 的包,我认为这是问题的一部分。
谢谢。
更新
https://neo4j.com/developer/elastic-search/这句话中的default Java driver是什么意思
如果您打算使用默认 Java 将 Neo4j 连接到 ElasticSearch 驱动程序,请注意之间存在不兼容 Neo4j 和 ElasticSearch 使用的 Lucene 版本,因此您可能需要 使用基于 REST 的解决方案,例如 JEST。
更新 2
如果没有解决冲突的解决方案,哪个选项更适合此用例:
我有前端会将一些cypher query 发送到其余服务器。其余服务器应该能够使用spring-data 和OGM mapping 来与Neo4j 通信,并且还能够从frontend 执行cypher query。
我也应该这样:
- 使用
standalone instance并使用bolt protocole与其通信 - 在另一个
springboot项目中使用embedded instance并通过bolt protocol公开它 在另一个springboot项目中使用embedded instace并公开它的rest api
我正在寻找能够确保rest server 和neo4j instance 之间良好通信速度的解决方案。并从rest server 支持OGM 提供的设施。 frontend 不会直接与 neo4j instance 通信
【问题讨论】:
标签: spring maven spring-boot elasticsearch neo4j