A *搜索neo4j

时间:2013-11-27 15:21:58

标签: graph neo4j

我想用neo4j在有向无环图中搜索最短路径。我的图表看起来与此类似: enter image description here

我想找到从RootLayer 3的路径。在每一层我都有不同的属性集,我可以使用这个属性和用户输入计算权重。我需要使用A *或其他搜索算法找到具有最小动态权重的所有最短路径(可能有几条具有相同权重的路径)。 neo4j和cypher还是gremlin有可能吗?

我不想使用嵌入式版本,因为我的项目是用python编写的,所以我不能使用我知道可以做到的java库。

1 个答案:

答案 0 :(得分:0)

截至目前,Cypher不允许您传递功能,例如你的成本函数。必须非常谨慎地添加此功能,因为通过查询语言注入可运行代码存在一些安全问题。

那说你现在可以做什么:为Neo4j服务器创建一个unmanaged extension。在您的非托管扩展程序中,您可以使用提供的graph algorithms。使用JAX-RS参数,您可以提供数据来识别遍历的开始和结束节点,让图表算法完成脏工作。

您可能需要查看https://github.com/sarmbruster/unmanaged-extension-archetype,这是一个使用gradle作为构建系统的简约示例项目。

然而,草绘的想法涉及服务器端部分的Java编码。客户端你可以使用你喜欢的任何堆栈。