apoc.algo.aStarConfig
语法 |
|
||
描述 |
运行 A* 搜索算法,使用给定 |
||
输入参数 |
名称 |
类型 |
描述 |
|
|
搜索的起始节点。 |
|
|
|
搜索的结束节点。 |
|
|
|
用于限制算法的关系类型。关系类型使用 APOC 的关系方向模式语法表示; |
|
|
|
{ weight = 'distance' :: STRING, default = Double.MAX_VALUE :: FLOAT, y = 'latitude' :: STRING, x = 'longitude' :: STRING, pointPropName :: STRING } |
|
返回参数 |
名称 |
类型 |
描述 |
|
|
路径结果。 |
|
|
|
给定路径的权重。 |
|
示例
给定此数据集
CREATE (b:City {name:'Berlin', coords: point({latitude:52.52464,longitude:13.40514}), lat:52.52464,lon:13.40514})
CREATE (m:City {name:'München', coords: point({latitude:48.1374,longitude:11.5755}), lat:48.1374,lon:11.5755})
CREATE (f:City {name:'Frankfurt',coords: point({latitude:50.1167,longitude:8.68333}), lat:50.1167,lon:8.68333})
CREATE (h:City {name:'Hamburg', coords: point({latitude:53.554423,longitude:9.994583}), lat:53.554423,lon:9.994583})
CREATE (b)-[:DIRECT {dist:255.64*1000}]->(h)
CREATE (b)-[:DIRECT {dist:504.47*1000}]->(m)
CREATE (b)-[:DIRECT {dist:424.12*1000}]->(f)
CREATE (f)-[:DIRECT {dist:304.28*1000}]->(m)
CREATE (f)-[:DIRECT {dist:393.15*1000}]->(h)
可以执行以下查询(利用作为数字的 lat 和 lon 节点属性,以及 dist 关系属性,默认成本为 100)
MATCH (from:City {name:'München'}), (to:City {name:'Hamburg'})
CALL apoc.algo.aStarConfig(from, to, 'DIRECT', {weight:'dist',y:'lat', x:'lon',default:100})
YIELD weight, path
RETURN weight, path
| weight | path |
|---|---|
697430.0 |
|
或者等效地,使用相同的配置,利用作为 Point 类型的 coords 节点属性,获得相同的结果。请注意,在 3D 坐标的情况下,该过程将只选择 x 和 y 或经度和纬度值。
MATCH (from:City {name:'München'}), (to:City {name:'Hamburg'})
CALL apoc.algo.aStarConfig(from, to, 'DIRECT', {pointPropName:'coords', weight:'dist', default:100})
YIELD weight, path
RETURN weight, path