它没有添加右边进出顶点的边

时间:2018-05-24 12:56:09

标签: gremlin tinkerpop tinkerpop3 janusgraph

我想在两个顶点之间添加一条新边。

以下是我使用

的命令
def graph=ConfiguredGraphFactory.open('graph');
def g = graph.traversal();

graph.addVertex(label, 'Person', 'name', 'Jack', 'entityId', '100');
graph.addVertex(label, 'Person', 'name', 'John', 'entityId', '50');

def v1 = g.V().has('entityId', '100').next();
def v2 = g.V().has('entityId', '50').next();
v1.addEdge('managerOf',v2,'inEntityId', '100', 'outEntityId', '50')

然后每当我想要获得我刚刚创建的路径时:

g.V().outE().inV().path();

它返回:

[
  {
    "labels": [
      [],
      [],
      []
    ],
    "objects": [
      {
        "id": 40968272,
        "label": "Person",
        "type": "vertex",
        "properties": {
          "name": [
            {
              "id": "oe22y-oe3bk-6mmd",
              "value": "Jack"
            }
          ],
          "entityId": [
            {
              "id": "oe2h6-oe3bk-6ozp",
              "value": "100"
            }
          ]
        }
      },
      {
        "id": "1crua2-oe3bk-4is5-oectk",
        "label": "managerOf",
        "type": "edge",
        "inVLabel": "Person",
        "outVLabel": "Person",
        "inV": 40980584,
        "outV": 40968272,
        "properties": {
          "outEntityId": "50",
          "inEntityId": "100"
        }
      },
      {
        "id": 40980584,
        "label": "Person",
        "type": "vertex",
        "properties": {
          "name": [
            {
              "id": "1cs5ql-oectk-6mmd",
              "value": "John"
            }
          ],
          "entityId": [
            {
              "id": "1cs64t-oectk-6ozp",
              "value": "50"
            }
          ]
        }
      }
    ]
  }
]

请注意,边缘并不反映我刚刚创建的内容。它倒了!这怎么可能?我做错了吗?

我使用JanusGraph,在数据浏览器中它也显示方向错误的边缘。

1 个答案:

答案 0 :(得分:0)

我认为是对的。虽然在你的边缘,你扭转了你的属性。 " outEntityId"应该是" 100" (杰克)和" inEntityId"应该是" 50" (约翰)就像边缘inVoutV一样。换句话说,你创建了

jack-managerOf->john

for the" managerOf"边缘,边缘离开" jack",因此outV是" jack",然后进入" john",因此{{1是" john"。

请注意,您可以通过使用Traversal API(aka Gremlin)的推荐路线来简化顶点/边缘添加:

inV