我知道这是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
我尝试从v5.5.5
包中排除neo4j
,但是它没有用,但是找不到某些类。我也曾尝试将Lucene
的{{1}}的版本降低,但它也不起作用。
真正困扰我的是elasticsearch
定义的软件包类似于elasticsearch
,我认为这是问题的一部分。
谢谢。
更新
https://neo4j.com/developer/elastic-search/的这句话中的Lucene
是什么意思
如果您打算使用默认Java将Neo4j连接到ElasticSearch 驱动程序,请注意两者之间存在不兼容 Neo4j和ElasticSearch使用的Lucene版本,因此您可能需要 搭配基于REST的解决方案(如JEST)。
更新2
如果没有解决冲突的解决方案,那么哪种选择更适合此用例:
我有前端,它将向其余服务器发送一些default Java driver
。其余服务器应该能够使用cypher query
和spring-data
以便与OGM mapping
通信,并且还能够从Neo4j
执行cypher query
。 / p>
我也应该:
frontend
并使用standalone instance
bolt protocole
项目中使用embedded instance
,并通过springboot
公开它
在另一个bolt protocol
项目中使用embedded instace
,并公开其其余的api 我正在寻找一种解决方案,以确保springboot
和rest server
之间的良好通信速度。并支持neo4j instance
中OGM
提供的功能。 rest server
将不会直接与frontend
答案 0 :(得分:1)
关于default Java driver
,它们表示您包括的neo4j依赖项。直接与neo4j交谈的人。 Neo4j也有一个REST API,他们建议您使用JEST(我不知道这是什么),我猜这是使用REST API与Neo4j对话的,因此完全不需要使用Lucene。