Neo4j APOC A* 有条件
Neo4j APOC A* with conditions
我在APOC库中成功使用了以下使用A*获取最短路径
apoc.algo.aStar("A", "B", 'Link', 'Length','X','Y') YIELD path, weight
apoc.algo.aStar("A", "B", 'Link', {weight:'Length',default:1, x:'X',y:'Y'}) YIELD path, weight
我将如何添加一个过滤器,以便它只使用 "Value" 为真的边。 documentation 没有提供示例。
public class Node{
public long Id {get;set;}
public string Name {get;set;}
public long X {get;set;}
public long Y {get;set;}
}
public class Link{
public bool Value {get;set;}
public long Length {get;set;}
}
没有示例,因为此功能不可用。
所以你有三个选择:
- 在 "Value" 为真
的关系上添加非常高的 Length
值
- 通过在关系类型中添加 属性 "Value" 来修改您的模型(即有两种类型:
Link_On
和 Link_value_Off
),因此您可以使用apoc 程序。
- 以 APOC (source code here)
中的示例为例,创建您自己的 A* 过程
我在APOC库中成功使用了以下使用A*获取最短路径
apoc.algo.aStar("A", "B", 'Link', 'Length','X','Y') YIELD path, weight
apoc.algo.aStar("A", "B", 'Link', {weight:'Length',default:1, x:'X',y:'Y'}) YIELD path, weight
我将如何添加一个过滤器,以便它只使用 "Value" 为真的边。 documentation 没有提供示例。
public class Node{
public long Id {get;set;}
public string Name {get;set;}
public long X {get;set;}
public long Y {get;set;}
}
public class Link{
public bool Value {get;set;}
public long Length {get;set;}
}
没有示例,因为此功能不可用。
所以你有三个选择:
- 在 "Value" 为真 的关系上添加非常高的
- 通过在关系类型中添加 属性 "Value" 来修改您的模型(即有两种类型:
Link_On
和Link_value_Off
),因此您可以使用apoc 程序。 - 以 APOC (source code here) 中的示例为例,创建您自己的 A* 过程
Length
值