Neo4j等时线和Nosql等时线

时间:2016-06-09 08:48:51

标签: neo4j

我目前正在研究Nosql的图形世界,我的任务是从指定的点A生成等时线。生成等时线意味着我想找到从A开始并在某个总成本内终止于节点X的所有路径在连接节点的关系上指定。 我目前正在Neo4j上尝试这个,但到目前为止我看到的每个算法都需要一个起始节点A和一个终端节点B,这不是我正在寻找的,因为我不知道最后的节点路径,这些节点是我需要发现的。 在没有编写我自己的算法的情况下,有没有机会在Neo4j(或另一个Nosql图形数据库)中这样做?

1 个答案:

答案 0 :(得分:0)

你需要:

  1. 找到起始节点
  2. 查找从此节点到其他节点的所有路径
  3. 计算终止节点的路径的最小成本
  4. 路径上的聚合节点成本
  5. 例如:

    MATCH (S) WHERE ID(S) = {start_node_id} 
    WITH S
    MATCH path = (S)-[*]->(E) 
    WITH E, 
         MIN( REDUCE(cost=0, r IN RELATIONSHIPS(path) | cost + r.weight) ) AS cost
    RETURN cost, 
           collect(E) as isochrones 
    ORDER BY cost