cherchant à comprendre si quelque chose peut être fait pour rendre la requête ci-dessous performant sur un grand graphique. J'essaie de trouver le chemin le plus court entre deux nœuds mais exclure les chemins qui incluent certains autres types de nœuds. Le problème semble être la clause WHERE. La requête ci-dessous s'arrête complètement.neo4j chemin le plus court avec contrainte d'étiquette
MATCH p=shortestPath((p1:Party{suprRC:"21"})-[*..15]-(p2:Party{suprRC:"21"}))
WITH p
WHERE NONE(n in nodes(p) where labels(n) in [["Reporter"],["FirstName"],["LastName"]])
RETURN p limit 500;
Vous pouvez essayer WHERE directement sur le MATCH (laissez WITH p en d'autres termes). –
Merci pour la suggestion Tom - Je crains que cela n'a pas aidé cependant. –
Couple de questions ... 1) le nœud de départ et le nœud final sont-ils les mêmes? Le suprRC est-il une propriété unique pour une partie? Sinon, les nœuds du Parti sont-ils indexés sur suprRC (je sais que cela devrait être évident, j'exclus simplement les options ici)? Lorsque vous exécutez seulement le MATCH (avec le RETURN et LIMIT mais sans WITH et WHERE) ... est-ce performant? Pouvez-vous partager la sortie d'un EXPLAIN de cette requête? –