Un coin où vous pouvez essayer Neo4J pendant longtemps.
Si vous maîtrisez Cypher, un langage de requête pour les bases de données de graphes récemment ouvert, vous pourrez créer et rechercher des structures de graphes. Alors commençons avec Cypher.
J'ai essayé d'utiliser py2neo, que j'ai mis la dernière fois, comme compagnon. Installation via pip:
sudo pip install py2neo $ python -V Python 2.7.10
Pour le moment, j'ai copié et corrigé un exemple subtil non-DRY (et cela ne fonctionne pas) qui était sur le Web, et j'ai rendu possible le traitement par lots:
test.py
from py2neo import Graph
graph = Graph("http://neo4j:yourpassword@:7474/db/data/")
statement = """
MERGE (person:Person {name:{person_name}}) ON CREATE SET
person.age = {person_age},
person.sex = {person_sex}
MERGE (pet:Pet {name:{pet_name}}) ON CREATE SET
pet.type = {pet_type}
MERGE (person)-[:owns]->(pet)
RETURN person
"""
tx = graph.cypher.begin()
persons = [
{'name': 'Homer', 'age': 32, 'sex': 'Male', 'pet_name': 'Buller', 'pet_type': 'Dog'},
{'name': 'Lucy', 'age': 12, 'sex': 'Male', 'pet_name': 'Buller', 'pet_type': 'Dog'},
{'name': 'Lucy', 'age': 12, 'sex': 'Male', 'pet_name': 'Betty', 'pet_type': 'Cat'}
]
for person in persons:
print person
tx.append(statement, {
'person_name': person['name'],
'person_age': person['age'],
'person_sex': person['sex'],
'pet_name': person['pet_name'],
'pet_type': person['pet_type']
})
tx.process()
tx.commit()
Vous pouvez voir le flux en extrayant uniquement la partie transaction:
tx = graph.cypher.begin() tx.append(statement, { ... }) tx.process() tx.commit()
De plus, si vous maîtrisez la syntaxe de chiffrement de MERGE ~ ON CREATE dans l'instruction, cela semble plutôt bon.
Voir l'exemple de py2neo qui valide JSON ci-dessous, qui pourrait être écrit différemment. http://jexp.github.io/blog/html/load_json.html
Ensuite, essayez de jouer avec le chiffrement à partir de la ligne de commande (l'environnement est Mac).
$ neo4j-shell
Unable to find any JVMs matching version "1.7".
Welcome to the Neo4j Shell! Enter 'help' for a list of commands
NOTE: Remote Neo4j graph database service 'shell' at port 1337
neo4j-sh (?)$ MATCH (p)-[:owns]-(pet) WHERE p.name = "Lucy" RETURN p, pet;
+------------------------------------------------------------------------------+
| p | pet |
+------------------------------------------------------------------------------+
| Node[11]{name:"Lucy",age:12,sex:"Male"} | Node[12]{name:"Betty",type:"Cat"} |
| Node[11]{name:"Lucy",age:12,sex:"Male"} | Node[10]{name:"Buller",type:"Dog"} |
+------------------------------------------------------------------------------+
2 rows
46 ms
Quelque chose s'est plaint au lancement de neo4j-shell, mais j'ai pu faire une requête.
Exécutez la même requête sur le navigateur:
MATCH (p)-[:owns]-(pet) WHERE p.name = "Lucy" RETURN p, pet;
Appuyez sur le bouton Graphique à droite et vous verrez l'écran graphique que vous attendiez: http://localhost:7474/browser/
Ci-dessous sur le site d'origine: http://neo4j.com/docs/stable/cypher-refcard/
Je ne trouve pas de bonne introduction au japonais sur le Web.
Dépêchez-vous et attendez avec impatience les "notes d'étude" avec des mises à jour de temps en temps! http://qiita.com/Keech/items/6bd5b667e935a20be018
Faisons cela à notre rythme ^^;
Recommended Posts