0
votes

Mettez à jour toutes les propriétés de mes nœuds avec le nombre de relations entre ce nœud et depuis.

Alors je pensais à quelque chose seul des lignes de:

match (A: entité) <- (x: entité) SET A.LINKS_TO = compter (x) Correspondance (A: Entity) -> (x: entité) Set A.Links_from = Nombre (x)

Comment puis-je écrire cela correctement dans CYPHER? Comment puis-je faire cela de manière rapide et préférée parallèle, peut-être en utilisant APOC?


1 commentaires

Sont: des nœuds d'entité les seuls nœuds qui sont connectés à d'autres: entités? Si tel est le cas, il n'est pas nécessaire de le faire du tout, car les données de degré de relation sont déjà sur le nœud lui-même, il vous suffit de regarder cela dans votre requête. Si tel est le cas, faites-le moi savoir et je vais ajouter comment faire cela comme une réponse.


3 Réponses :


0
votes

C'est une opération coûteuse à faire, mais si vous voulez le faire ici, c'est la requête CYPHER pour cela:

match (a)-[]->(b) 
with a, b, 
CASE WHEN exists(a.outgoingEdges) THEN a.outgoingEdges+1 else 1 END as outgoingEdges,
CASE WHEN exists(b.incomingEdges) THEN b.incomingEdges+1 else 1 END as incomingEdges
SET
 a.outgoingEdges= outgoingEdges,
 b.incomingEdges = incomingEdges


0 commentaires

0
votes

Ceci peut être fait de manière très efficace avec. XXX PRE>

Si vous souhaitez utiliser APOC pour accélérer et exécuter en parallèle P>

Call apoc.periodic.iterate(
' match (e:Entity) return e',
' set e.links_to = size((e)<--()),
      e.links_from = size((e)-->())',
{batchSize:10000,parallel: true})


0 commentaires

0
votes

Grandes réponses. La solution APOC fonctionne particulièrement bien. Merci beaucoup!


1 commentaires

Vous pouvez uppoter et définir la réponse comme correctement est votre réponse