Janusgraph:以不同的方式执行查询时,返回相同说明符的不同输出

时间:2019-03-29 11:01:45

标签: java graph-databases gremlin tinkerpop janusgraph

我正在使用Graphexp来可视化图形。 Graphexp在内部使用gremlin查询来获取输出。

这是Graphexp正在执行的查询:

nodes = g.V().limit(50).toList();edges = g.V(nodes).aggregate('node').outE().as('edge').inV().where(within('node')).select('edge').toList();[nodes,edges]

我已经在Janus之上创建了自己的API用于CRUD操作。我要在边缘之间插入两个顶点和一个边缘,并在边缘添加一些说明符(键,值对)。

运行上述查询后,Graphexp返回

id: {relationId: "551-6co-13it-m54"}
inV: 28696
inVLabel: "vertex"
label: "intend"
outV: 8232
outVLabel: "vertex"
properties:
owner_id: {key: "owner_id", value: "18699980"}
rel_id: {key: "rel_id", value: "intend"}
rel_name: {key: "rel_name", value: ""}
relation_specifier: {key: "relation_specifier", value: "[]"}
src_specifier: {key: "src_specifier", value: "-1466934972"}
tar_specifier: {key: "tar_specifier", value: "[]"}
__proto__: Object
type: "edge"

正如我们所看到的,这里很少有东西是空的。例如:rel_name,tar_specifier等。

现在我通过不同的查询得到其他结果:

我的查询(用Java编写):

g.V().has("name", source).outE().where(__.inV().has("name", target)).valueMap().toList()

使用我自己的API,我在上述查询中发送源和目标。

我的查询响应:

{
  "res": [
    {
      "tar_specifier": "[for month]",
      "src_specifier": "[]",
      "relation_specifier": "[]",
      "rel_name": "intend",
      "owner_id": "",
      "rel_id": "-1466934972",
      "doc_id": "18699980"
    }
  ]
}

我的预期输出是最后一个输出,它以我发送的确切方式显示数据。 IDK为什么在UI中得到的响应完全混乱了。

示例:“ rel_name”在最后一个输出中是“意图”(按预期),而在UI响应中,它被分配给rel_id。

我们都使用不同的Gremlin查询,但仍然不应将数据分配到其他地方或变空。

我已经调试了UI,并且得到了与上述相同的查询和响应。

我是Gremlin的新手,但是我了解不同的数据库,并且我相信数据组织不取决于查询。

先谢谢您!

0 个答案:

没有答案