以下cypher查询在Community 2.0.1中超时。不幸的是,我无法使用它生成profile
输出。
如果用户已被复制,我希望消除歧义,并尝试在特定用户发生这种情况时找到基线。然而,看起来Cypher并没有“开始”#39;两个节点具有相同的apiid
,而是首先查询数据库中的所有关系。
match (n:LIuser)-[r:CONNECTED]-(), (nnn:LIuser)-[rr:CONNECTED]-()
where n.apiid = 'K1J3V8EI9M'
and nnn.apiid = '29302231'
return count(distinct r), count(distinct rr)
提前致谢!
编辑:我意识到我错过了输入这个问题 - 这完全改变了意义。 n.apiid和nnn.apiid是不同的。我最初打的是同样的。
答案 0 :(得分:1)
您正在创建一个交叉产品,这就是问题所在。
假设您为每个用户提供了1000个CONNECTED查询,然后创建了必须处理的1000 x 1000行。 (通常不会导致1M行出现问题)。也许您还应该分享您的设置和graph.db/messages.log
实际上,如果我正确地理解了你想要的是一个分组,对于重复用户来说,这些分组会返回2行或更多行吗?
MATCH (n:LIuser)-[r:CONNECTED]-()
WHERE n.apiid = 'K1J3V8EI9M'
RETURN n, count(distinct r)
你甚至可以这样做,看看另一方面是什么:
MATCH (n:LIuser)-[r:CONNECTED]-(m)
WHERE n.apiid = 'K1J3V8EI9M'
RETURN n, count(distinct r),collect(m)
答案 1 :(得分:0)
您是否尝试在apiid
属性上编制索引?
CREATE INDEX ON :LIuser(apiid)