gpt4 book ai didi

neo4j - 在 Neo4j 中为每个查询返回前 n 个结果

转载 作者:行者123 更新时间:2023-12-04 23:52:06 24 4
gpt4 key购买 nike

我一直在尝试在密码查询中执行以下任务,但没有得到正确的结果。其他 stackoverflow 问题讨论了限制或收集,但我认为这不足以完成以下任务。

任务:
我有 (p:Product) 节点,并且在两个产品节点之间有一个名为“BOUGHT_TOGETHER”的关系。那是

(p:Product)-[b:BOUGHT_TOGETHER]-(q:Product)

关系 b 有一个名为“size”的属性,其中包含一些数字。我想返回按大小排序的每个产品关系的前 3 个结果。例如,查询结果应如下所示。
+------------------------+
| p.id | q.id | b.size |
+------------------------+
1 2 10
1 3 8
1 5 7
2 21 34
2 17 20
2 35 15
3 5 49
3 333 30
3 65 5
. . .
. . .
. . .

有人可以告诉我如何编写密码查询以达到预期的结果吗?谢谢!

最佳答案

另一种解决方案是首先对关系进行排序,将它们放入一个集合中,然后仅对集合的第 3 个结果进行 UNWIND:

MATCH (p:Product)-[r:BOUGHT_TOGETHER]->(:Product)
WITH p, r
ORDER BY r.size DESC
WITH p, collect(r) AS bts
UNWIND bts[0..3] AS r
RETURN p.uuid as pid, endNode(r).uuid as qid, r.size as size

在这里测试控制台: http://console.neo4j.org/r/r88ijn

注意:重新阅读 jjaderberg 的答案后,这有点相似,只是我认为更具可读性。为什么我投票支持他的答案。

关于neo4j - 在 Neo4j 中为每个查询返回前 n 个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32907134/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com