我有一个包含大约 30000 个节点和 200000 个关系的图表。在 30000 个节点中,大约有 1000 个是项目,其余的是聚合。
每个聚合aggregates
最多与几个项目有关系。我正在尝试查找与我选择的某些项目聚合的项目。
START b = node:items('name:ball'),
c = node:items('name:chocolate'),
d = node:items('name:deck')
MATCH (magic)<-[:aggregates]-()-[:aggregates]->(b),
(magic)<-[:aggregates]-()-[:aggregates]->(c),
(magic)<-[:aggregates]-()-[:aggregates]->(d)
RETURN DISTINCT magic.name
LIMIT 30
我从未见过此查询完成。考虑到仅限于 2 个项目的查询在一秒钟内完成,这很奇怪。
START b = node:items('name:ball'),
c = node:items('name:chocolate')
MATCH (magic)<-[:aggregates]-()-[:aggregates]->(b),
(magic)<-[:aggregates]-()-[:aggregates]->(c)
RETURN DISTINCT magic.name
LIMIT 30
你能指出我的查询/模式的问题吗?我知道我做错了什么,但我不知道是什么