【问题标题】:Neo4j Graph depth traversal CypherNeo4j 图深度遍历密码
【发布时间】:2017-07-03 22:05:26
【问题描述】:

我正在使用 neo4j 作为图形数据库,我想从该节点的起始节点邻居以及所有相关邻居返回到从 1 到 3 的深度。我正在这样做但它卡住了: 请注意,这是一个大图。

start n = node(*) where n.NID contains "9606.ENS3" 
MATCH (n)-[Rel1*1..3]-(m) RETURN m;

有人知道如何在图上进行遍历并获得结果吗?

【问题讨论】:

  • 您使用的是哪个 Neo4j 版本?你遇到了什么错误?
  • 我使用的是 3.2.1 社区

标签: performance neo4j cypher traversal depth


【解决方案1】:

您的问题显示了旧的 Cypher 语法。 docs 谈到了 START 子句:

START 子句仅应在访问旧索引时使用。在 在所有其他情况下,请改用 MATCH(请参阅第 3.3.1 节,“MATCH”)。

我相信这应该可行:

MATCH(n)-[Rel1*1..3]->(m)
WHERE n.NID contains "9606.ENS3"
RETURN m

【讨论】:

  • 有什么线索可以优化,因为它是大型数据集?浏览器错误
  • 您可以尝试在nm 节点中指定一个已知标签(类似于MATCH(n:NodeTypeA)-[Rel1*1..3]->(m:NodeTypeB))。在 n.NID 属性中创建索引也是一个好主意。
  • 一个唯一的约束已经被创建并且添加标签会使其出错
  • 你遇到了什么“错误”?
  • 浏览器被阻止说 neio4j 不响应
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多