Comment puis-je obtenir le nombre de nœuds d'un graphe Neo4j base de données à partir de Python?
Je vais essayer d'obtenir le nombre de nœuds d'un graphe Neo4j base de données à l'aide de Python, mais je ne trouve pas de méthode ou propriété de le faire.
Quelqu'un comment puis-je obtenir cette information?
D'autres paquets Python comme NetworkX a une méthode pour obtenir cette information.
>>> G = nx.Graph() # or DiGraph, MultiGraph, MultiDiGraph, etc
>>> G.add_path([0,1,2])
>>> len(G)
3
OriginalL'auteur Marc Pou | 2011-11-16
Vous devez vous connecter pour publier un commentaire.
Mise à jour:
Depuis que je l'ai écrit, la réponse a changé. La base de données maintenant tient compte exact du total des nœuds, ainsi que par le nombre par une étiquette. Contrairement à la plupart des bases de données, ce n'est pas une heuristique, ces compteurs sont point de vue transactionnel en phase avec le reste de la banque de données.
Cela signifie que vous pouvez obtenir exacte nœud compte en O(1) temps de Neo4j. Vous obtenez l'accès à leur posant la question Cypher:
Réplique originale:
Il y a deux façons d'obtenir le nombre de nœuds dans une base de données neo4j. La première consiste à itérer sur tous les nœuds, et les compter.
Alternative deux est d'utiliser le "numéro de l'id de nœud dans l'utilisation des" données statistiques sont fournies par la db du noyau, ce qui ne garantit pas pour être exact, mais sera au moins le nombre de nœuds dans l'utilisation. Dans une charge élevée db, il sera plus élevé, car il contient aussi des id de supprimer les nœuds qui n'ont pas été récupérée encore.
Alt est raisonnablement exacte (en fonction de combien sont créés/supprimés pendant que vous itérer), mais peut être super lent. Alt deux est potentiellement la voie, mais c'est un O(1).
Vous actuellement n'ont pas trop le choix, parce que la touche alt est le seul qui fonctionne. Il n'est pas officiellement pris en charge, afin de le faire aujourd'hui ressemble un peu sale:
J'ai ajouté deux questions, pour ajouter le support pour accéder à de l'information de gestion (eg. appuyer la touche alt de deux méthode), et une pour ajouter la prise en charge de ces cas d'utilisation:
Suivre ces questions ici:
https://github.com/neo4j/python-embedded/issues/7
https://github.com/neo4j/python-embedded/issues/6
S'il vous plaît laissez-nous maintenant si vous avez d'autres problèmes avec neo4j-incorporé, ajouter un ticket pour le github questions, si vous constatez des bugs ou d'autres améliorations!
La prochaine étape, c'est en raison de vendredi, mais nous sommes à la reconstruction de notre infrastructure d'intégration continue, donc peut-être que c'est retardé jusqu'à la semaine prochaine, nous allons voir comment doucement les choses aller 🙂 je n'aurai pas le temps d'ajouter le support pour l'alternative de deux avant le vendredi, mais la première approche doit être assez simple de l'ajouter. Gardez un œil sur le journal des modifications sur le dépôt github 🙂
OriginalL'auteur Jacob Davis-Hansson
Sinon (peut-être en mesure d'exécuter cette requête à partir de Python en quelque sorte), vous pouvez
et le retourner par l'exécution d'un
CYPHER
requête via la valeur par défaut neo4j interface de navigateur @http://localhost:7474/browser/
. La commande précise suit:Espère que cette aide.
MATCH (n) RETURN count(*)
ou équivalentSTART n=node(*) RETURN count(n)
OriginalL'auteur evandrix
Si vous êtes prêt à faire une API REST requête, cette réponse vous obtiendrez le rugueux "numéro d'id de nœud en cours d'utilisation" de la valeur.
OriginalL'auteur Doctor J