Neo4J APOC A * и условия Dijkstra - PullRequest
1 голос
/ 17 июня 2019

В настоящее время я использую встроенный 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
...