neo4j多个MATCH用nebula怎么写

  • nebula 版本:2.6.0
  • 部署方式:单机
  • 安装方式:Docker

Neo4j的语句:

MATCH(s:tag)-[]->(e:edge)<-[]-(d:tag)
WHERE id(s)=="037cec47-d3cd-4d71"
WITH s, d, COUNT(e) AS intersection
MATCH (s)-[]->(e:edge)
WITH s, d, intersection, collect(id(e)) AS s1
MATCH (d)-[]->(e:edge)
WITH s, d, intersection, s1, collect(id(e)) AS s2
WITH d, ((1.0 * intersection)/SIZE(s1+[x IN s2 WHERE NOT x IN s1])) AS ssim
RETURN d
ORDER BY ssim DESC LIMIT 50

多 MATCH PATTERN 的支持正在加紧进行中,不久之后会合并,在那之前有很多表达确实只能转成多次 query

那用 Go 查询可以实现吗

这种表达用单 query GO 不太好写

我想帮你看的时候发现您写的这个语句我有点奇怪,比如

edge 是 nebula 里的 edge 的概念么?是的话这里写的不对了,因为 () 是 vertex,[]才是 edge

https://docs.nebula-graph.com.cn/2.6.1/1.introduction/2.data-model/

不是,我是随便写的,就是节点类型

您好,就是有多query写法的示例吗?我尝试写了下,但始终不对

MATCH 多 pattern 的支持很快就有了,不过还不支持。(敬请期待哈 PR已经有了,还没合 Implement the multi query parts of openCypher. by CPWstatic · Pull Request #3519 · vesoft-inc/nebula · GitHub

大多数需要多 pattern 才能表达的 query 在(支持 多 MATCH之前)一个query里没法表达,只能在应用程序通过多次 query 来拼出结果哈。

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