【发布时间】:2014-03-25 21:09:49
【问题描述】:
我不知道使用 Cypher 或图遍历是否有意义,但我试图做一种“最短路径”查询,但不是基于加权关系,而是基于聚合属性。
假设我有标记为“人员”的节点,并且它们都访问了与主页节点具有 VISIT 关系的不同主页。每个主页节点都有根据其受欢迎程度的点击统计信息。现在我想将具有访问关系的人与主页匹配,直到我达到最大 X 次曝光(点击)。
为什么?因为那时我知道针对特定人群的“预期”曝光策略。
类似
Do
MATCH (n:People)-[:VISITS]-(sites)
while (reduce (x)<100000)
当然,这个“Do while”不是我在 Cypher 语法中见过的,但它不是很有用吗?或者这应该是在应用程序级别,只需返回一个 DESC 列表并在应用程序中进行数学运算。如果不能满足循环,它也应该与某些情况相匹配。
MATCH (n:People)-[:VISITS]-sites
WITH reduce(hits=0, x IN collect(sites.dailyhits)| hits + x) AS totalhits
RETURN totalhits;
可以返回正确的聚合命中值(全部),但我希望这个函数运行每个匹配的模式,直到它满足一个值并返回匹配(当然我错过了其他可能的并且在页面之间混合因为匹配从不遍历整个图表..但至少我有一个列表中符合要求的页面的答案,如果它有意义的话)?
谢谢!
【问题讨论】: