Neo4j - y a-t-il une syntaxe de requête cypher pour lister (afficher) tous les index dans la base de données?
je cherche quelque chose de similaire au MySQL ( SHOW INDEXES ). J'ai pu obtenir une liste des index en utilisant py2neo en Python
graphDB = neo4j.GraphDatabaseService()
indexes = graphDB.get_indexes(neo4j.Node)
print(format(indexes))
mais je voulais savoir s'il y avait un moyen de faire quelque chose de similaire à Cypher.
5 réponses
Pas encore. Dans Neo4j 2.0, une indexation plus conviviale a été introduite et vous pouvez lancer des commandes DDL pour créer et supprimer des indices et des contraintes, mais à partir de 2.01 c'est tout (voir docs). Dans 1,9 vous ne pouvez pas définir ce type de schéma avec monogramme.
--
il y a de nombreux moyens en dehors de cypher, par exemple
neo4j-shell
vous pouvez
- listez les indices de legs avec
index --indexes
- liste de tous les indices et contraintes de label avec
schema
- liste des indices et des contraintes pour un label spécifique avec
schema ls -l :YourLabel
neo4j-browser
vous pouvez
- liste de toutes les étiquettes des indices et des contraintes avec
:schema
- liste des indices et des contraintes pour un label spécifique avec
:schema ls -l :YourLabel
la plupart des API qui vous permettent d'exécuter des requêtes cypher fourniront également des moyens de requête schema, comme
- Java En Natif API
GraphDatabaseService.schema().getConstraints()
et.getIndexes()
pour le label schémaGraphDatabaseService.index().nodeIndexNames()
et.relationshipIndexNames()
l'héritage pour les indices
- appels de REPOS à
/db/data/schema/
les points de terminaison pour un label basé schéma- et
/db/data/index/node/
et/db/data/index/relationship/
l'héritage pour les indices
Qu'en est-il de la :schema
commande? (Dans le Neo4j shell c'est juste schema
).
fonctionne comme le charme pour moi dans Neo4j 2.0.1
neo4j 3.1 supporte maintenant ceci comme une procédure intégrée que vous pouvez appeler à partir de Cypher:
CALL db.indexes();
http://neo4j.com/docs/operations-manual/3.1/reference/procedures/
Eh bien, en Cypher vous ne pouvez pas faire cela, mais il y a une requête REST API, qui fonctionne.
Vous pouvez le vérifier dans le Terminal.
Tous les index de la base de données:
curl http://localhost:7474/db/data/schema/index/
Index sur une étiquette spécifique:
curl http://localhost:7474/db/data/schema/index/User
cela ne répond pas tout à fait à votre question (I +1'd jjaderberg la réponse aussi.)
Dans py2neo il y a certaines fonctionnalités pour les étiquettes: http://book.py2neo.org/en/latest/schema/
get_index(label)
Récupérer une liste de propriété indexée clés pour une étiquette.
pour votre information, dans shell vous pouvez utiliser leschema
la commande.