我有一个嵌入式 Neo4j 数据库,并使用 Fluent API 对其运行 Gremlin 遍历。我需要能够针对该数据库执行 Gremlin 脚本(不是 Cypher)。然而,由于对嵌入式 Neo4j 数据库的访问不是通过 Cluster 实例进行的,所以我不知道如何获取具有执行 Gremlin 脚本所需方法的 Client 对象的句柄...例如client.sumbit(查询)
。
如何做到这一点?
最佳答案
我认为您是说您想要针对 Neo4j 处理代码中的 Gremlin 字符串。您可以直接使用 GremlinGroovyScriptEngine
。这是一个使用 TinkerGraph 而不是 Neo4j 的简单示例(显然,您可以轻松地换成 Neo4j,并且此代码将以相同的方式工作):
gremlin> bindings = new javax.script.SimpleBindings()
gremlin> bindings.put('g', TinkerFactory.createModern().traversal())
gremlin> engine = new org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine()
==>org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine@7b676112
gremlin> results = engine.eval("g.V(1)", bindings).toList()
==>v[1]
TinkerPop还有更高级的GremlinExecutor它包装了 GremlinGroovyScriptEngine
并提供了一些您可能会觉得有用的附加功能。
关于java - 如何为嵌入式 Neo4j 数据库执行 Gremlin 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57772451/