Premiers pas avec neo4j
Langage de requête chiffré
C’est le Cypher, le langage de requête de Neo4j. À bien des égards, Cypher est similaire à SQL si vous le connaissez, sauf que SQL fait référence à des éléments stockés dans une table, tandis que Cypher fait référence à des éléments stockés dans un graphique.
Tout d’abord, nous devrions commencer par apprendre à créer un graphique et à ajouter des relations, car c’est essentiellement ce qu’est Neo4j.
CREATE (ab:Object { age: 30, destination: "England", weight: 99 })
- Vous utilisez CREATE pour créer des données
- Pour indiquer un nœud, vous utilisez des parenthèses : ()
- La partie ab:Object peut être décomposée comme suit : une variable ‘ab’ et un label ‘Object’ pour le nouveau nœud. Notez que la variable peut être n’importe quoi, mais vous devez être cohérent dans une ligne de Cypher Query
- Pour ajouter des propriétés au nœud, utilisez des crochets : {} crochets
Ensuite, nous apprendrons à trouver des MATCHes
MATCH (abc:Object) WHERE abc.destination = "England" RETURN abc;
MATCH spécifie que vous souhaitez rechercher un certain modèle de nœud/relation (abc:Object) fait référence à un nœud Pattern (avec l’étiquette Object) qui stocke les correspondances dans la variable abc. Vous pouvez penser à cette ligne entière comme suit
abc = find the matches that is an Object WHERE the destination is England.
Dans ce cas, WHERE ajoute une contrainte qui est que la destination doit être l’Angleterre. Vous devez inclure un retour à la fin pour toutes les requêtes MATCH (neo4j n’acceptera pas juste un Match… votre requête doit toujours retourner une valeur [cela dépend aussi du type de requête que vous écrivez… nous en reparlerons ceci plus tard lorsque nous présenterons les autres types de requêtes que vous pouvez effectuer].
La ligne suivante sera expliquée dans le futur, après avoir passé en revue quelques éléments supplémentaires du langage de requête Cypher. C’est pour vous donner un avant-goût de ce que l’on peut faire avec cette langue ! Ci-dessous, vous trouverez un exemple qui récupère le casting des films dont le titre commence par ‘T’
MATCH (actor:Person)-[:ACTED_IN]->(movie:Movie)
WHERE movie.title STARTS WITH "T"
RETURN movie.title AS title, collect(actor.name) AS cast
ORDER BY title ASC LIMIT 10;
Une liste complète des commandes et de leur syntaxe peut être trouvée sur la [Carte de référence Neo4j Cypher ici] [1].
[1] : http://neo4j.com/docs/cypher-refcard/current/ “Neo4j Cypher Refcard”
Installation ou configuration
Allez dans [Installer Neo4j][1] qui devrait détecter la plate-forme de l’OS via votre navigateur web, téléchargez et suivez les instructions d’installation habituelles pour votre OS.
Neo4j a été créé avec Java, donc fonctionnera sur n’importe quelle plate-forme avec Java installé, cependant l’équipe Neo4j a simplifié l’installation en fournissant des packages d’installation faciles pour la plate-forme populaire (par exemple un .dmg pour Mac, un .deb pour Debian et Ubuntu, un .exe pour les plates-formes Windows 64 et 32 bits…).
Pour passer en revue les autres versions et plates-formes disponibles, voir [Other Neo4j Releases Page][2]
[1] : https://neo4j.com/download/ [2] : https://neo4j.com/download/other-releases/
Configurer Neo4j en tant que conteneur Docker :
## Required : Docker machine, docker cli
# Pull neo4j image from the docker hub
docker pull neo4j
# create the docker container
docker run \
--publish=7474:7474 --publish=7687:7687 \
--volume=$HOME/neo4j/data:/data \
neo4j
# If you are running docker directly on the host (e.g ubuntu, RHEL, CentOs etc)
# Access the neo4j console at http://localhost:7474
# If you are on OSX/ Windows
# Access the neo4j console at http://<docker-machine-ip>:7474
Installation & Démarrage d’un serveur Neo4j
Étapes préalables :
- Installez Java sur votre machine
- Visitez le [site Web de neo4j][1] et cliquez sur le lien “Télécharger l’édition communautaire” ou visitez directement le [lien de téléchargement][2].
- Décompressez le fichier téléchargé .tar dans votre répertoire personnel
Démarrer Neo4j depuis la console (headless, sans serveur web)
- Visitez le sous-répertoire
/bin
du dossier extrait et exécutez-le dans le terminal./console neo4j
- Vous pouvez maintenant exécuter des requêtes neo4j dans le terminal
Démarrer le serveur Web Neo4j
- Visitez le sous-répertoire /bin du dossier extrait et exécutez dans le terminal
./neo4j start
- Visitez http://localhost:7474/
- Uniquement la première fois, vous devrez vous connecter avec le compte par défaut et changer le mot de passe par défaut. Depuis la version 3.0.3 de la communauté, le nom d’utilisateur et le mot de passe par défaut sont neo4j et neo4j.
- Vous pouvez maintenant insérer des requêtes Neo4j dans la console fournie dans votre navigateur Web et examiner visuellement les résultats de chaque requête.
Démarrer le serveur Web Neo4j
Chaque serveur Neo4j actuellement (dans l’édition communautaire) peut héberger une seule base de données Neo4j, donc pour configurer une nouvelle base de données :
- Visitez le sous-répertoire
/bin
et exécutez./neo4j stop
pour arrêter le serveur - Visitez le sous-répertoire
/conf
et éditez le fichierneo4j.conf
, en changeant la valeur du paramètredbms.active_database
par le nom de la nouvelle base de données que vous souhaitez créer. - Revisitez le sous-répertoire /bin et exécutez
./neo4j start
- Le serveur Web a redémarré avec la nouvelle base de données vide. Vous pouvez visiter à nouveau http://localhost:7474/ pour travailler avec la nouvelle base de données.
- La base de données créée se trouve dans le sous-répertoire
/data/databases
, sous un dossier dont le nom est spécifié dans le paramètredbms.active_database
.
Supprimer l’une des bases de données
- Assurez-vous que le serveur Neo4j n’est pas en cours d’exécution ; allez dans le sous-répertoire /bin et exécutez
./neo4j status
. Si le message de sortie indique que le serveur est en cours d’exécution, exécutez également./neo4j stop
. - Allez ensuite dans le sous-répertoire /data/databases et supprimez le dossier de la base de données que vous souhaitez supprimer.
[1] : https://neo4j.com/download/ [2] : https://neo4j.com/download-thanks/?edition=community
Base de données RDBMS Vs Graph
SGBDR | Base de données graphique |
---|---|
Tableaux | Graphiques |
Lignes | Nœuds |
Colonnes et données | Propriétés et ses valeurs |
Contraintes | Des relations |
rejoint | Traversée |