Neo4j路径采样

vwhgwdsa  于 2022-10-01  发布在  其他
关注(0)|答案(1)|浏览(144)

我得到的结果是这样的:

  • [A->关系1->B]
  • [A->关系2->B]
  • [A->关系2->C->关系1->B]
  • [A->关系5->D->关系3->B]
  • [A->关系2->Y->关系1->B]
  • [A->关系2->E->关系1->B]
  • [A->关系2->D->关系2->F->关系1->B]
  • [A->关系2->F->关系4->Y->关系2->B]

**期望结果:**FOREACH路径长度,随机返回1行

  • [A->关系2->B]
  • [A->关系2->Y->关系1->B]
  • [A->关系2->D->关系2->F->关系1->B]

结果代表所有路径长度:

第一行:

[A->Relationship 2->B]下面是第二行路径长度为1的样本:

[A->Relationship 2->Y->Relationship 1->B:是从路径长度2到第三行的样本:

[A->Relationship 2->D->Relation2->F->Relations1->B]。这是一个来自路径长度3的样本。

oxiaedzo

oxiaedzo1#

为了解决这个问题,我们需要根据路径的长度收集路径,因此我们在每个长度上都有一个行和一个列表,然后对收集到的路径进行整理并取一条路径。

...
CALL apoc.algo.allSimplePaths(A, B, '', 3) YIELD path
WITH length(path) as length, collect(path) as paths
WITH length, apoc.coll.shuffle(paths)[0] as randomPath
ORDER BY length ASC
RETURN randomPath

相关问题