首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有路径结果所示权重的Neo4j - Dijkstra算法

具有路径结果所示权重的Neo4j - Dijkstra算法
EN

Stack Overflow用户
提问于 2014-03-15 00:34:57
回答 1查看 305关注 0票数 0

到目前为止,我从Dijkstra的算法中获得了所有路径,如下所示:

代码语言:javascript
复制
        for(Node node_a: GlobalGraphOperations.at(graphDB).getAllNodes()){
            for(Node node_b: GlobalGraphOperations.at(graphDB).getAllNodes()){
                if(node_a.getId() != node_b.getId()){
                    Iterator<WeightedPath> paths = dijkstra.findAllPaths(node_a, node_b ).iterator();

                    while (paths.hasNext()){
                        WeightedPath path = paths.next();
                        Iterable<Relationship> relationships = path.relationships();
                        String pathString = "";
                        for(Node node :path.nodes()){
                            pathString +=  node.getProperty("company_name") + " ->";

                        }

                        System.out.println(pathString);
                        System.out.println(path);
                    }
                }

            }

        }

然而,我想得到每段关系的独立长度。例如,我有一条路径如下:

代码语言:javascript
复制
(3)--[PROGRESSED_TO,3800]-->(7)--[PROGRESSED_TO,4350]-->(894) weight:0.088345867
3Com ->Nortel ->Bay Networks

但我也想,能看到3Com -(length:24)->Nortel -(length:10)->Bay Networks

有办法这样做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-18 07:53:57

您还可以迭代路径的关系:

代码语言:javascript
复制
for(Relationship rel :path.relationships()){
  pathString +=  "(length:" + rel.getProperty("length") + ")";
}

或覆盖所有元素

代码语言:javascript
复制
for(PropertyContainer pc :path){
  ... pc.getProperty("foobar")...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22418075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档