You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Neo4j-3.5运行Gremlin查询?适配TinkerPop版本说明

适配版本说明

Neo4j 3.5社区版可稳定对接的TinkerPop&Gremlin版本为3.4.x稳定线,推荐使用3.4.13(3.4线最终维护版本)。

  • 禁止使用TinkerPop 3.5.0及以上版本对接:高版本内置的neo4j-gremlin组件适配Neo4j 4.x+的存储API,连接3.5实例会触发存储格式不兼容错误,甚至可能损坏数据库文件。
  • 该版本组合无企业版依赖,Neo4j社区版即可完整支持所有Gremlin查询能力。
具体实现方案

根据使用场景,可以选以下三种落地方式,所有方案都不需要做全量数据迁移,可直接读取现有Neo4j 3.5的存储数据。

方案1:JVM应用嵌入式集成

适用于Java/Kotlin/Scala等JVM栈应用直接在进程内执行Gremlin查询,不需要额外部署服务:

  1. 引入依赖,核心依赖坐标为org.apache.tinkerpop:neo4j-gremlin:3.4.13,引入时需要排除依赖包中自带的高版本Neo4j驱动,强制指定Neo4j版本与你当前使用的3.5.x小版本完全一致,避免依赖冲突。
  2. 初始化Gremlin遍历客户端,示例代码:
import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;

// 直接指向本地Neo4j 3.5的数据库存储目录
Neo4jGraph graph = Neo4jGraph.open("/your/neo4j-3.5-install-path/data/databases/graph.db");
GraphTraversalSource g = graph.traversal();

// 执行Gremlin查询,例:统计全量节点数
Long totalNodes = g.V().count().next();

// 用完关闭连接释放文件锁
graph.close();

注意:嵌入式模式运行时,必须停掉占用同一个数据目录的Neo4j Server进程,否则会触发文件锁冲突报错。

方案2:Gremlin Server代理部署

适用于多语言应用、非JVM栈应用需要通过网络调用Gremlin查询的场景:

  1. 下载并解压3.4.13版本的Gremlin Server安装包。
  2. 修改配置:
    • 编辑conf/neo4j-empty.properties,将gremlin.neo4j.directory配置项的值改为你现有Neo4j 3.5的数据库存储目录绝对路径;首次连接时可临时将gremlin.neo4j.conf.dbms.allow_upgrade设为true完成存储元数据兼容,连接验证正常后改回false,避免误触发存储版本升级。
    • 编辑conf/gremlin-server.yaml,将默认挂载的图配置指向修改好的neo4j配置文件,调整服务监听端口,避免和原有Neo4j服务的端口冲突。
  3. 启动服务:执行bin/gremlin-server.sh(Linux/macOS)或bin/gremlin-server.bat(Windows),启动成功后即可用任意语言的Gremlin驱动连接服务端口执行查询。
    该模式下同样需要停掉原有占用同数据目录的Neo4j进程,Gremlin Server本身支持Cypher查询插件,可同时兼容原有Cypher查询逻辑。

方案3:Gremlin Console临时查询

适用于调试、临时数据查询场景:

  1. 下载并解压3.4.13版本的Gremlin Console安装包。
  2. 启动控制台后依次执行以下命令完成连接:
:plugin use tinkerpop.neo4j
graph = Neo4jGraph.open("/your/neo4j-3.5-install-path/data/databases/graph.db")
g = graph.traversal()
  1. 连接完成后直接输入Gremlin语句即可执行查询,例如输入g.V().limit(10).valueMap()可查询前10个节点的所有属性。

踩坑提示
所有操作前务必备份Neo4j的data目录全量文件,避免配置失误导致数据损坏。
3.4版本的neo4j-gremlin组件不支持通过Bolt协议连接远程运行中的Neo4j实例,仅支持直接读取本地磁盘上的Neo4j存储文件。

内容的提问来源于stack exchange,提问作者anisha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 11:09:23