【发布时间】:2016-12-06 04:25:31
【问题描述】:
我目前正在为一个包含 50.000 多个节点的数据库建模,每个节点都有 2 个有向关系。我尝试获取一个输入节点(根节点)的所有节点,这些节点通过一种关系连接到它,并且这些节点的所有所谓的子节点等等,直到到达每个直接和间接连接到该根节点的节点.
String query =
"MATCH (m {title:{title},namespaceID:{namespaceID}})-[:categorieLinkTo*..]->(n) " +
"RETURN DISTINCT n.title AS Title, n.namespaceID " +
"ORDER BY n.title";
Result result = db.execute(query, params);
String infos = result.resultAsString();
我已经读到运行时更有可能在 O(n^x) 中,但我找不到任何命令排除例如循环或到一个节点的多条路径,因此查询需要 2 多个小时,而事实并非如此我的用例可以接受。
【问题讨论】:
-
Cypher 中没有
GROUP BY运算符。你的意思是ORDER BY? -
嘿,是的,我的错。如果类似的东西在这里有效,那只是一次尝试。我忘记删除它。它也没有与 ORDER BY 一起工作。