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_OnLink_value_Off),因此您可以使用apoc 程序。
  • 以 APOC (source code here)
  • 中的示例为例,创建您自己的 A* 过程