Cela dépendra si vous êtes à la recherche d'une connexion spécifique (via un: noeud Société), ou si vous recherchez simplement une connexion. Disons que: Les nœuds de personnes ont un nom, et que les nœuds de personne X et Y ont les noms 'x' et 'y', donc nous pouvons leur correspondre. Disons aussi que vous avez un index sur: Person (nom) afin que nous puissions rechercher rapidement les nœuds.
Si la requête que nous voulons est « do personnes x et y partagent la même société », la requête pour cela, le retour de la société en question, est:
match (x:Person{name:'x'})<-[:HAS_EMPLOYEE]-(comp:Company)-[:HAS_EMPLOYEE]->(y:Person{name:'y'})
return comp
Mais si nous ne savons pas comment ces personnes sont connectées, ou même si elles sont connectées, alors nous voudrons probablement exécuter une correspondance shortestPath()
entre les nœuds, et voir ce qui les relie.
Il est utile de définir des limites supérieures pour cette correspondance. Pour l'instant, utilisons 8 sauts max.
match path=shortestPath((x:Person{name:'x'})-[*..8]-(y:Person{name:'y'}))
return path
Je cherchais le chemin le plus court, c'est-à-dire que nous ne savons pas qu'il existe une société qui les relie. Réponse parfaite. –