首页 文章

在neo4j中找到节点集(某些节点)之间最长路径的最佳方法是什么?

提问于
浏览
1

我有一组将由用户声明的节点(我的意思是用户输入一些单词,我的节点中存在的节点将包含在我的节点集中),我想找到这些节点之间存在的最长路径(在neo4j嵌入式java数据库中,不必包含set中的所有节点,但不应包括我的节点集中不存在的节点 . (我不知道什么是起始节点,所有节点都可以起始节点 . )

首先我想也许我必须制作这些节点的子图和它们之间的关系,然后找到该子图中最长的路径,但我不知道什么是正确和最好的事情?

然后我想,我可以直接找到节点集之间的最长路径(可以这样做吗?) .

或者,如果无法做到这一点,如何找到某些节点(节点集)的关系并 Build 一组关系,然后找到关系集之间的最长路径?

我想要最佳和最快的性能方式,我不想要密码查询,因为我使用的是java核心api(它更快),所以请告诉我最好的方法是什么?

将其视为具有如此多节点的大型数据库 .

提前致谢 .

1 回答

  • 0

    我担心除了遍历整个图形之外,任何标准算法都无法做到这一点 . 因此,没有最佳的表现方式 . neo4j没有内置选项 .

    这是一个密码查询(抱歉,我不知道neo4j中的其他输入语言):

    start n1=node(*), n2=node(user) 
    match n1--n2    //filter only the just declared user nodes, or any other matching condition
    with n1, n2
    match p=n1-[r:..*]-m, m--n2    //all paths between declared user nodes
    return p
    order by length(r) desc
    limit 1
    

相关问题