多边创建 - Gremlin REST服务器

时间:2017-07-17 15:01:27

标签: javascript gremlin tinkerpop tinkerpop3 gremlin-server

我使用的是一个简单的Gremlin RESTful服务器,我在POST请求中发送简单的命令。例如,如果我想创建边(以我的特定格式),我有以下模板:

const nodeCommandFormat = "graph.addVertex('%s', '%s', 'evid', '%s');";

使用像这样的链式命令发送一个长字符串工作正常,所有边都被创建。我的问题是:为什么它不能与边缘创建一起使用?到现在为止,我尝试了这两个命令:

const newEdgeCommandFormat = "g.V().has('evid', '%s').addE('next').to(g.V().has('evid', '%s')).property('count', 1);";

x = g.V().has('evid', ...).next(); y = g.V().has('evid', ...).next(); x.addEdge('next', y, 'count', 1);

但是,如果我连接100个这样的命令,则只创建与最后一个命令对应的边。这是为什么?另一方面,我也收到这样的错误:

  • 使用第一种类型的边缘创建 n:[WARN] HttpGremlinEndpointHandler - 无效请求 - 响应500内部服务器错误并且提供的遍历器未映射到值:v [3091] - > [TinkerGraphStep(顶点,[evid.eq(6ba0b28797dd79a2ee198d8ff280c4ff)])]
  • 使用第二种边创建:java.util.NoSuchElementException 在org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.next(DefaultTraversal.java:204)

如何使用Gremlin REST服务器实现动态边缘创建?

P.S。我的所有节点都有“evid”属性(event-id),它是对象的md5值。我用它作为节点的标识符。

谢谢!

1 个答案:

答案 0 :(得分:0)

.iterate()您的遍历。这在“前5分钟”部分末尾的Getting Started tutorial右侧突出显示。