【问题标题】:neo4j and elastic-search in same spring boot project (conflict lucene version)neo4j 和 elastic-search 在同一个 spring boot 项目中(冲突 lucene 版本)
【发布时间】:2018-12-23 19:06:07
【问题描述】:

我知道这是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.1neo4j 取决于 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-dataOGM mapping 来与Neo4j 通信,并且还能够从frontend 执行cypher query

我也应该这样:

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

我正在寻找能够确保rest serverneo4j instance 之间良好通信速度的解决方案。并从rest server 支持OGM 提供的设施。 frontend 不会直接与 neo4j instance 通信

【问题讨论】:

    标签: spring maven spring-boot elasticsearch neo4j


    【解决方案1】:

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

    【讨论】:

    猜你喜欢
    • 2015-02-03
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 2016-10-22
    相关资源
    最近更新 更多