所有可能的路径的方向和巨大的估计行!neo4j



我们有一些关于一些节点的数据这些节点通过关系相互连接我们称之为(cable)

节点数:349,线缆数:924

我们需要找到两个节点之间可能的路径(不是最短的),并使用这个:

MATCH p=(n:location)-[*]-(m:location)
WHERE n.lo_id = 70 AND m.lo_id = 486
AND ALL(x IN NODES(p) WHERE SINGLE(y IN NODES(p) WHERE y = x))
return p

但是失败了。我过去常常在计划中解释和看到,在"varlengtheexpand (Into)@neo4j"关于

估计有67,837,845,872,747,150,000行!!

这个查询有什么问题?

我是neo4j新手。我应该在字段上添加索引还是重写查询?

你能帮我让它工作,并找到可能的路径与节点之间的良好查询吗?

数码版:数字4.4,规划师:成本、运行时:解释。

最好使用APOC路径扩展配置,

https://neo4j.com/labs/apoc/4.1/graph-querying/expand-paths-config/

  • 设置唯一性为NODE_PATH
  • 使用bfs: false
  • 使用结束节点作为终止节点
  • 可能设置一个最大深度至少只要你在测试

你想如何处理这数十亿条路径?

基本上路径展开是跳数的幂次。

对于平均度为10的图,10跳路径为10^10。

我真的建议你先弄清楚你想用所有的路径做什么,然后更好地表达你想如何引导扩展。

如果您有业务规则,您可以使用来自用户定义过程的遍历API来指导每一步的遍历/展开。(参见GitHub上的APOC过程的实现)

最新更新