В настоящее время я использую встроенный dijkstra для поиска пути Neo4J с использованием условий (см. Ниже).
CYPHER
PROFILE MATCH path = shortestpath((s:Node {UID: 73946372})-[Road*]->(e:Node {UID: 2383529534}))
WHERE ALL(x in relationships(path) WHERE x.LG_6 > 0 || x.C60 > 100)
WITH path, reduce(s = 0, r IN relationships(path) | s + r.Length) AS dist
RETURN path LIMIT 1
Тем не менее, я хотел бы знать, возможно ли сделать то же самое с APOC и иметь такие условия, как x.LG_6> 2000 AND x.C60> 0. Шифр ниже - это то, что я сейчас использую, но у них нет условий.
APOC A *
PROFILE MATCH (s:Node {UID: 73946372}),(e:Node {UID: 2383529534})
CALL apoc.algo.aStar(s, e, 'Road', 'Length','Latitude','Longitude') YIELD path, weight
RETURN path, weight LIMIT 1
APOC Dijkstra
PROFILE MATCH (s:Node {UID: 73946372}),(e:Node {UID: 2383529534})
CALL apoc.algo.dijkstra(s, e, 'Road', 'Length') YIELD path AS path, weight AS weight
RETURN path, weight LIMIT 1