LOOKUP ON 边 可以筛选rank吗

  • 在使用match的时候可以这样
MATCH (n)-[r:follow]->(n2) WHERE rank(r) == 1 RETURN edge AS e
  • 在使用 LOOKUP ON 则报错
LOOKUP ON follow WHERE rank(edge) == 1 YIELD edge AS e

LOOKUP ON目前不支持在where子句当中过滤rank()

rank的支持功能比一般属性还少一点。
我也不明白为什么。。。
建议冗余一份在属性。

可以先用这种方式过渡, 不过性能上有一定的差异.

LOOKUP ON follow YIELD edge as e
| YIELD $-.e as e WHERE rank($-.e) == 1
1 个赞

目前来看LOOKUP语法使用where语句不支持schema function(src/dst/rank/properties).
这个我在之前的帖子里发起过类似的问题.

希望官方的大佬们能尽快把这个issue作为enhancement提进milestone.

https://github.com/vesoft-inc/nebula/issues/4848

2 个赞

你是说 rank 索引吗?rank 索引没有计划去支持。
如果不是说 rank 索引,那没什么好优化的,这语法本身设计就是这么用的。

By design. 可以把 lookup 里边的 where 理解为指定索引。
通过管道 yield 去写 where。

这不就是普通的 function 吗,为什么是 schema function,是因为这个 function 要访问 schema 吗?还是说 schema function 是什么专有术语。

文档里他们是这么被分类的哈 :smiley:

文档分类归分类,总不能发明概念吧。

嗯呐,我就是补充一下叫法的来源 :stuck_out_tongue_winking_eye:

这里文档里的xx函数表示与xx相关的函数,主要是便于用户查找。或者你有什么更好的建议吗?

所以,schema function 是 schema 相关的函数?

不要光喷,要给建议。

是的

给了建议,普通 function 不是 schema function。

这些函数和 schema 有什么关系吗?

很抱歉在专业术语上发生争议…

另一方面也希望官方文档中对于这个概念术语有更好的补充说明, 或者是更细粒度的解释.

2 个赞

你的需求 @wey 已经提了 issue,具体开发进度会在 issue 中同步,感谢反馈!

借这个帖子给官方文档提个小建议。文档最好不要引入新概念,如果要引入需要先定义概念,不然会给用户造成一些困惑。比如这个 schema function 跟 schema 就完全没什么关系,查文档也并没有定义什么叫 schema function。

1 个赞