我正在使用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的新手,但是我了解不同的数据库,并且我相信数据组织不取决于查询。
先谢谢您!