【发布时间】:2019-10-25 19:47:01
【问题描述】:
我了解实现细节会影响这个问题,但我也意识到我在这里可能做错了什么。如果是这样,我还能做些什么更好?如果 Gremlin 有一些我不知道的多结果集提交查询批处理功能,那将解决问题。就像,嘿 Gremlin,并行运行这三个查询并给我他们的结果。
基本上,我需要知道一个顶点何时有某个边缘,如果它没有那个边缘,我需要拉一个空白。所以...
g.V().as("v").coalesce(outE("someLabel").has("someProperty","someValue"),constant()).as("e").select("v","e")
该查询比简单地使用以下方法获取边要贵 10 倍:
g.V().outE("someLabel").has("someProperty","someValue")
因此,如果我想获得一组顶点及其边缘或空白占位符,我有两个选择:进行两个离散查询并在 API 中“加入”数据或进行一个非常昂贵的查询。
我的工作假设是在 Gremlin 中,我们“一次性完成”,而这实际上可能是完全错误的。也就是说,我也知道拉回数据块并在 API 中有效地进行连接是不好的做法,因为它破坏了封装原则。它还增加了往返开销。
【问题讨论】:
标签: gremlin