繁体   English   中英

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

[英]what is the best way to find longest path between set of nodes(certain nodes) in neo4j?

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

首先,我想也许我必须对这些节点及其之间的关系进行子图绘制,然后在该子图中找到最长的路径,但是我不知道该怎么做才是正确和最好的选择?

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

或者如果无法做到这一点,那么如何找到特定节点(一组节点)的关系并建立一组关系,然后找到一组关系之间的最长路径呢?

我想要最佳的最快性能方式,并且我不想使用密码查询,因为我使用的是Java核心api(速度更快),所以请告诉我什么是最佳方式?

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

提前致谢。

恐怕除了遍历整个图形之外,任何标准算法都无法做到这一点。 因此,没有最佳的性能方式。 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM