在Cypher中有没有什么方法可以使用Dijkstra算法来计算具有多个属性的最小权重,而不是:
CALL apoc.algo.dijkstra(start, end, 'RELATED_TO>', '1_property')
yield path, weight
做一些类似的事情:
CALL apoc.algo.dijkstra(start, end, 'RELATED_TO>', '1_property+2_property')
yield path, weight
这对我不起作用。你有什么建议吗?因为我想在权重的计算中加入路径的长度,作为对最小权重计算的影响。
2条答案
按热度按时间tf7tbtn21#
您可以查看Memgraph、高性能、内存和事务图形数据库。openCypher和Bolt兼容。(免责声明:我是联合创始人兼首席技术官)。Memgraph内置了加权最短路径功能,其中总权重通过用户定义的lambda函数计算。基于此数据集
相关Memgraph的查询是
结果如下。
7bsow1i62#
对于apoC,您需要使用一个额外的属性来保存总和。
对于图形算法中的一个,您可以使用将两个权重相加的图形投影。
Https://neo4j-contrib.github.io/neo4j-graph-algorithms/#_single_source_shortest_path
您可以在配置节中使用
nodeQuery
和relationshipQuery
。