同一spring boot项目中的neo4j和elastic搜索(冲突lucene版本)
我知道这是一个复制品 但是已经5年了,也许现在有人可以提出其他的解决方案 我试图将弹性搜索和neo4j共存,但两者都与Lucene依赖性存在冲突 就我而言,我有同一spring boot项目中的neo4j和elastic搜索(冲突lucene版本),spring,maven,spring-boot,
elasticsearch,neo4j,Spring,Maven,Spring Boot,
elasticsearch,Neo4j,我知道这是一个复制品 但是已经5年了,也许现在有人可以提出其他的解决方案 我试图将弹性搜索和neo4j共存,但两者都与Lucene依赖性存在冲突 就我而言,我有 <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>6.2.1<
<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,但没有成功,因为有些类找不到。我还尝试减少Lucene的elasticsearch版本,但也没有成功
真正困扰我的是elasticsearch正在定义一个类似Lucene的包,我认为这是问题的一部分
多谢各位
更新
这句话中默认的Java驱动程序是什么意思
如果您计划使用默认Java将Neo4j连接到ElasticSearch
驱动程序,请注意,两个
Neo4j和ElasticSearch使用的Lucene版本,因此您可能需要
使用基于REST的解决方案,如JEST
更新2
如果没有解决方案来解决冲突,那么哪个选项更适合此用例:
我有一个前端,它将向rest服务器发送一些密码查询。rest服务器应该能够使用spring数据和OGM映射来与Neo4j通信,并且能够从前端执行cypher查询
因此,我应该:
使用独立实例,并使用bolt协议与其通信
在另一个springboot项目中使用嵌入式实例,并通过bolt协议将其公开
在另一个springboot项目中使用嵌入式instace并公开其restapi
我正在寻找解决方案,以确保rest服务器和neo4j实例之间的良好通信速度。并从rest服务器支持OGM提供的设施。前端不会直接与neo4j实例通信关于默认Java驱动程序,它们意味着您所包含的neo4j依赖关系。与neo4j直接对话的人。Neo4j也有一个REST API,他们建议您使用JEST我不知道那是什么,我猜是使用REST API与Neo4j交谈,因此根本不需要使用Lucene。是HTTP REST client for ElasticSearch。对我来说,这不是一个好的解决方案,我更喜欢Neo4JHTTPREST客户端