有没有办法在Neo4J中运行最短路径算法,同时使用>对边缘或节点进行过滤。运营商。 比如在具有更高时间戳的节点上进行过滤?
干杯
答案 0 :(得分:0)
在某种程度上,您可以使用查询谓词(http://neo4j.com/docs/3.0.1/query-predicates.html)。
以下是使用内置示例电影图的示例。该查询找到从Movie
到另一个MATCH p = shortestPath((m1:Movie)-[*]-(m2:Movie))
WHERE m1.title = 'The Birdcage' AND m2.title = 'Sleepless in Seattle'
AND ANY(x in nodes(p) WHERE x.name = 'Kevin Bacon')
RETURN p
的最短路径,并过滤通过Kevin Bacon的路径。
private void ThreadFunc(object state)
{
Context ctx = (Context)state;
Command cmd = ctx.CommandList;
Processor proc = ctx.Processor;
while (cmd != null)
{
switch(cmd.Type)
{
case CommandType.Simple:
proc.ExecuteSimpleCommand(cmd);
break;
case CommandType.Complex:
cmd.Data = ComputeData(cmd.Dataset);
proc.ExecuteComplexCommand(cmd);
break;
}
cmd = cmd.Next;
}
}