neo4j和弹性搜索在同一spring boot项目(冲突lucene版本)中

时间:2018-07-16 09:13:23

标签: spring maven spring-boot elasticsearch neo4j

我知道这是this question的重复项 但是已经有5年了,也许有人现在可以提出其他解决方案了。

我正在尝试将elastic-searchneo4j共存,并且两者对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,我认为这是问题的一部分。

enter image description here

enter image description here

谢谢。

更新

https://neo4j.com/developer/elastic-search/的这句话中的Lucene是什么意思

  

如果您打算使用默认Java将Neo4j连接到ElasticSearch   驱动程序,请注意两者之间存在不兼容   Neo4j和ElasticSearch使用的Lucene版本,因此您可能需要   搭配基于REST的解决方案(如JEST)。

更新2

如果没有解决冲突的解决方案,那么哪种选择更适合此用例: 我有前端,它将向其余服务器发送一些default Java driver。其余服务器应该能够使用cypher queryspring-data以便与OGM mapping通信,并且还能够从Neo4j执行cypher query。 / p>

我也应该:

  • 使用frontend并使用standalone instance
  • 与之通信
  • 在另一个bolt protocole项目中使用embedded instance,并通过springboot公开它 在另一个bolt protocol项目中使用embedded instace,并公开其其余的api

我正在寻找一种解决方案,以确保springbootrest server之间的良好通信速度。并支持neo4j instanceOGM提供的功能。 rest server将不会直接与frontend

通信

1 个答案:

答案 0 :(得分:1)

关于default Java driver,它们表示您包括的neo4j依赖项。直接与neo4j交谈的人。 Neo4j也有一个REST API,他们建议您使用JEST(我不知道这是什么),我猜这是使用REST API与Neo4j对话的,因此完全不需要使用Lucene。