Je cherche quelque chose de similaire à MySQL (SHOW INDEXES). J'ai pu obtenir une liste d'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 dans Cypher.
Pas encore. Dans Neo4j 2.0, une indexation plus conviviale a été introduite et vous pouvez émettre des commandes DDL pour créer et supprimer des index et des contraintes, mais à partir de 2.01, c'est tout (voir docs ). Dans 1.9, vous ne pouvez pas du tout définir ce type de schéma avec Cypher.
-
Il existe de nombreuses façons en dehors de Cypher, par exemple
Dans neo4j-Shell
, Vous pouvez
index --indexes
schema
schema ls -l :YourLabel
Dans neo4j-browser
, Vous pouvez
:schema
:schema ls -l :YourLabel
La plupart des API qui vous permettent d'exécuter des requêtes de chiffrement fourniront également des moyens d'interroger le schéma, comme
GraphDatabaseService.schema().getConstraints()
et .getIndexes()
pour le schéma d'étiquetteGraphDatabaseService.index().nodeIndexNames()
et .relationshipIndexNames()
pour les anciens indices/db/data/schema/
Points de terminaison pour le schéma basé sur une étiquette/db/data/index/node/
et /db/data/index/relationship/
pour les anciens indicesQue dire de la :schema
commande? (Dans le shell Neo4j, c'est juste schema
).
Fonctionne comme un charme pour moi dans Neo4j 2.0.1
neo4j 3.1 prend désormais en charge cela en tant que procédure intégrée que vous pouvez APPELER depuis Cypher:
CALL db.indexes();
http://neo4j.com/docs/operations-manual/3.1/reference/procedures/
Eh bien, dans Cypher, vous ne pouvez pas le faire, mais il y a une demande d'API REST, 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 (j'ai également attribué la mention +1 à jjaderberg.)
Dans py2neo, il existe des fonctionnalités pour les étiquettes: http://book.py2neo.org/en/latest/schema/
get_index(label)
Récupère une liste de clés de propriété indexées pour une étiquette.
Pour info, dans Shell, vous pouvez utiliser la commande non documentée schema
.