2017-09-04 16 views

Répondre

0

Vous pouvez essayer le plugin neo4j graph algorithms, qui contient des algorithmes, que vous pouvez appeler à l'aide Cypher. Vous venez de le télécharger et le copier dans le dossier /plugins.

Ils prennent en charge (faiblement) les composants connectés. Vérifiez le documentation:

obtenir la taille des composants connectés.

CALL algo.unionFind.stream('User', 'FRIEND', {}) 
YIELD nodeId,setId 
RETURN distinct(setId) as component, count(*) as component_size 

Vous pouvez vérifier le nombre de composants fortement connectés, docs:

exemple:

CALL algo.scc('User','FOLLOW', {write:true,partitionProperty:'partition'}) 
YIELD loadMillis, computeMillis, writeMillis, setCount, maxSetSize, minSetSize 

et recherche ensuite les résultats:

MATCH (u:User) 
RETURN distinct(u.partition) as partition,count(*) as size_of_partition 
ORDER by size_of_partition DESC LIMIT 20 

Ils soutiennent également algorithmes de propagation d'étiquettes, docs.

exemple appel:

CALL algo.labelPropagation(label:String, relationship:String, 
direction:String, {iterations:1, 
weightProperty:'weight', partitionProperty:'partition', write:true}) 
YIELD nodes, iterations, loadMillis, computeMillis, writeMillis, write, weightProperty 
+0

Merci pour la réponse. Mais une autre question ici est, ce que cela représente exactement quand nous disons USER ou AMI? On dirait que ces requêtes s'exécutent sur n'importe quelle base de données graphique. – user8494391

+0

vérifier les docs ... on charge des nœuds par des labels et des relations par leur type –