提问参考模版:
- 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查询速度慢,管道符在处理大量数据的时候性能也差,这块是否可以优化一下呢