我正在使用Neo4j + Cypher构建内容推荐引擎。我正在使用Neo4j 2.1.2企业
我导入的数据代表访问过网页的用户。我的图表上唯一的关系是(用户) - [:VIEWED] - >(页面)。以下查询旨在显示其他用户也查看过的每个页面的页面标识符pid(唯一属性),以及所有这些用户查看该页面的次数。因此,对于给定页面,我想查看用户查看了哪些其他页面,以及每个页面查看了多少用户。
MATCH (p:Page)<--(u:User)-->(p2:Page)
WHERE (p.pid=501515)
RETURN p.pid, p2.pid, count(u)
ORDER BY count(u) desc
LIMIT 3
这不会返回任何结果。但是,如果我只是删除方向,我会按预期得到三个结果。
MATCH (p:Page)--(u:User)--(p2:Page)
WHERE (p.pid=501515)
RETURN p.pid, p2.pid, count(u)
ORDER BY count(u) desc
LIMIT 3
返回我期望的值。 (我可以使用其他查询验证数据)。
为什么这些查询的结果不同?