关于用go语言查询的方向问题

提问参考模版:

  • nebula 版本:(为节省回复者核对版本信息的时间,首次发帖的版本信息记得以截图形式展示)
  • 部署方式:分布式
  • 安装方式: RPM
  • 是否上生产环境:Y
def function()
        if 'R104' in filter and 'R103' in filter:
            tar = 'BIDIRECT'
        elif "R103" in filter:
            tar = ''
        elif 'R104' in filter:
            tar = 'REVERSELY'
        else:
            return None
        if isinstance(lcid, str):
            lcid = "'{}'".format(lcid)
        stmt = 'GO {} STEPS FROM {} OVER IPE {} where "GR" in labels($$) or "GR" in labels($^)\
                YIELD src(edge), dst(edge), properties($^), properties($$), properties(edge), type(edge), labels($$), labels($^), rank(edge)'.format(
            level, lcid, tar)
return self.execute_json(stmt)

这块在进行查询的时候发现,go语句相关查询并不支持对于边的灵活切换,现在业务上需要针对标签去指定方向查询某一个点经过某种边特定方向上的所有点,标签有很多,导致我无法用go语句实现比如查询一个点正向经过某一种边的结果,反向经过某一种边结果,目前实现方式是只能将gql拆开依次查询(如上图,我需要写很多这样的function),但我认为这种方式并不好,群里有提到使用match或者管道符,但match查询速度慢,管道符在处理大量数据的时候性能也差,这块是否可以优化一下呢

不好意思,你的代码我没看懂。
“导致我无法用go语句实现比如查询一个点正向经过某一种边的结果,反向经过某一种边结果,”
我想问下,你是期望类似于 match (v1)-[e1:edge1]->(v2)<-[e2:edge2]-(v3) 这样的,
还是说你都只是一度查询,但如果是不同类型的边,你取不同的方向而已?

老师您好,我的需求是要不同类型的边取不同的方向

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。