Neo4j: Difference between revisions

From air
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
Neo4J est une implémentation open-source d'un système de bases de données orientées graphe ([[Graph Databases]]). Neo4J est écrit en Java 7. Son langage de requête (LDD/LMD), Cypher, s'inspire de SQL. [[Guery]] est un LMD alternatif à Cypher.
Neo4J est une implémentation open-source d'un système de bases de données orientées graphe ([[Graph Databases]]). Neo4J est écrit en Java 7 ([[OSGi]] ?). Son langage de requête (LDD/LMD), Cypher, s'inspire de SQL. [[Guery]] est un LMD alternatif à Cypher. Index 1D (temps) et 2D (geoposition).


* http://fr.wikipedia.org/wiki/Neo4j
* http://fr.wikipedia.org/wiki/Neo4j
Line 5: Line 5:
* Refcard Querying Graphs with Neo4j http://refcardz.dzone.com/refcardz/querying-graphs-neo4j
* Refcard Querying Graphs with Neo4j http://refcardz.dzone.com/refcardz/querying-graphs-neo4j
* "Graph Databases - The Definitive Book on Graph Databases" par Ian Robinson, Jim Webber, and Emil Eifrém ([http://graphdatabases.com Version électronique gratuite])
* "Graph Databases - The Definitive Book on Graph Databases" par Ian Robinson, Jim Webber, and Emil Eifrém ([http://graphdatabases.com Version électronique gratuite])

Presentation
* http://www.slideshare.net/emileifrem/an-intro-to-neo4j-and-some-use-cases-jfokus-2011


=Premiers pas=
=Premiers pas=

Revision as of 04:53, 13 November 2014

Neo4J est une implémentation open-source d'un système de bases de données orientées graphe (Graph Databases). Neo4J est écrit en Java 7 (OSGi ?). Son langage de requête (LDD/LMD), Cypher, s'inspire de SQL. Guery est un LMD alternatif à Cypher. Index 1D (temps) et 2D (geoposition).

Presentation

Premiers pas

Installation

cd neo4j
bin/neo4j help
# --> Usage: neo4j { console | start | start-no-wait | stop | restart | status | info | install | remove }
bin/neo4j start
bin/neo4j status
bin/neo4j info
Neo4J

Naviguez sur http://localhost:7474

Utilisez la console de langage Cypher pour exécuter les requêtes suivantes Cypher

Créez un noeud

CREATE (ee:Person { name: "Emil", from: "Sweden", klout: 99 })

Recherchez un noeud

MATCH (ee:Person) WHERE ee.name = "Emil" RETURN ee;

Créez des noeuds et des relations entre ces noeuds (ie un graphe).

MATCH (ee:Person) WHERE ee.name = "Emil"
CREATE (js:Person { name: "Johan", from: "Sweden", learn: "surfing" }),
(ir:Person { name: "Ian", from: "England", title: "author" }),
(rvb:Person { name: "Rik", from: "Belgium", pet: "Orval" }),
(ally:Person { name: "Allison", from: "California", hobby: "surfing" })
CREATE (ee)-[:KNOWS {since: 2001}]->(js),
(ee)-[:KNOWS {rating: 5}]->(ir),
(js)-[:KNOWS]->(ir),
(js)-[:KNOWS]->(rvb),
(ir)-[:KNOWS]->(js),
(ir)-[:KNOWS]->(ally),
(rvb)-[:KNOWS]->(ally)

Recherchez des noeuds en relation (KNOWS) avec le noeud (js.name = "Johan").

MATCH (ee:Person)-[:KNOWS]-(friends)
WHERE ee.name = "Emil" RETURN ee, friends

Recherchez des noeuds en relation (KNOWS) avec le noeud (js.name = "Johan").

MATCH (js:Person)-[:KNOWS]-()-[:KNOWS]-(surfer)
WHERE js.name = "Johan" AND surfer.hobby = "surfing"
RETURN DISTINCT surfer

Recherchez des noeuds en relation quelquonque avec le noeud (ee).

MATCH (ee:Person)-[:KNOWS]-(pers)
WHERE ee.name = "Emil" RETURN ee, pers

Créez un noeud (éloigné)

CREATE (james:Person { name: "James", from: "France", hobby: "surfing" })
CREATE (james)-[:KNOWS {since: 2010}]->(ally)

Recherche transitive ???

TODO


Arretez le serveur

bin/neo4j stop

Modifiez la configuration

more conf/neo4j-server.properties
nano conf/neo4j-server.properties

Redémarrez le serveur

bin/neo4j start

Requêtes via l'interface REST

PUT,POST,GET

Requêtes via Guery