[PYTHON] [Neo4J] ④ Versuchen Sie, die Diagrammstruktur mit Cypher zu handhaben

Eine Ecke, in der Sie Neo4J lange ausprobieren können.

Wenn Sie Cypher beherrschen, eine Abfragesprache für Diagrammdatenbanken, die kürzlich geöffnet wurde, können Sie Diagrammstrukturen erstellen und durchsuchen. Beginnen wir also mit Cypher.

Ich habe versucht, py2neo, das ich das letzte Mal eingefügt habe, als Begleiter zu verwenden. Installation über Pip:

sudo pip install py2neo $ python -V Python 2.7.10

1) Stapelverarbeitung mit py2neo

Vorerst habe ich ein subtiles Beispiel kopiert und korrigiert (und es funktioniert nicht), das im Web nicht TROCKEN war, und es ermöglicht, Stapelverarbeitungen durchzuführen:

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()

Sie können den Ablauf anzeigen, indem Sie nur den Transaktionsteil extrahieren:

tx = graph.cypher.begin() tx.append(statement, { ... }) tx.process() tx.commit()

Wenn Sie die Cypher-Syntax von MERGE ~ ON CREATE in der Anweisung beherrschen, sieht sie auch ziemlich gut aus.

Siehe das folgende Beispiel von py2neo, das JSON festschreibt, das anders geschrieben werden könnte. http://jexp.github.io/blog/html/load_json.html

2) Schreiben Sie eine Abfrage in die Befehlszeile.

Versuchen Sie als Nächstes, mit Cypher über die Befehlszeile zu spielen (Umgebung ist 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

Beim Start von neo4j-shell wurde etwas beanstandet, aber es wurde erfolgreich abgefragt.

3) Führen Sie eine Abfrage im Browser aus und zeichnen Sie sie grafisch auf

Führen Sie dieselbe Abfrage im Browser aus:

MATCH (p)-[:owns]-(pet) WHERE p.name = "Lucy" RETURN p, pet;

Drücken Sie die Grafiktaste rechts und Sie sehen den Grafikbildschirm, den Sie erwartet haben: http://localhost:7474/browser/ スクリーンショット 2015-11-14 19.52.40.png

4) Chiffrier-Cheat-Sheet für Chiffren usw.

Unten auf der ursprünglichen Seite: http://neo4j.com/docs/stable/cypher-refcard/

Ich kann im Web keine gute Einführung in Japanisch finden.

Beeilen Sie sich und freuen Sie sich auf "Studiennotizen" mit Updates von Zeit zu Zeit! http://qiita.com/Keech/items/6bd5b667e935a20be018

Lass uns das in unserem eigenen Tempo machen ^^;

Recommended Posts

[Neo4J] ④ Versuchen Sie, die Diagrammstruktur mit Cypher zu handhaben
Versuchen Sie, das Fizzbuzz-Problem mit Keras zu lösen
Versuchen Sie, das Mensch-Maschine-Diagramm mit Python zu lösen
So testen Sie den Friends-of-Friends-Algorithmus mit pyfof
Versuchen Sie, das Programmier-Herausforderungsbuch mit Python3 zu lösen
Stellen wir uns den Raum mit Raspeltorte vor, Teil 1
Versuchen Sie, den Inhalt von Word mit Golang zu erhalten
Versuchen Sie, den Boden durch Rekursion herauszufordern
Versuchen Sie, mit dem Uprobe zu spielen, der Systemtap direkt unterstützt
Versuchen Sie, den Betrieb von Netzwerkgeräten mit Python zu automatisieren
Versuchen Sie, die verstümmelten Zeichen im angehängten Dateinamen mit Python zu entschlüsseln
Versuchen Sie, Merkmale von Sensordaten mit CNN zu extrahieren
Versuchen Sie, Facebook mit Python zu betreiben
Versuchen Sie, das N Queen-Problem mit SA von PyQUBO zu lösen
Versuchen Sie, sich mit ONNX Runtime zu profilieren
Versuchen Sie, das Thema Pelican vorzustellen
Anrufdiagramm mit PyCallGraph ausgeben
Probieren Sie Cython in kürzester Zeit aus
Versuchen Sie, das Bild mit opencv2 zu verwischen
Versuchen Sie, Audio mit M5 STACK auszugeben
Der schnellste Weg, EfficientNet auszuprobieren
Versuchen Sie, den kürzesten Weg mit Python + NetworkX + Social Data zu lösen
Vom "Zeichnen" zum "Schreiben" des Konfigurationsdiagramms: Zeichnen Sie das AWS-Konfigurationsdiagramm mit Diagrammen
Der einfachste Weg, PyQtGraph auszuprobieren
Setzen Sie Cabocha 0.68 in Windows ein und versuchen Sie, die Abhängigkeit mit Python zu analysieren
Versuchen Sie, das Problem des Handlungsreisenden mit einem genetischen Algorithmus zu lösen (Theorie)
Ich habe es mit den Top 100 PyPI-Paketen versucht.> Ich habe versucht, die auf Python installierten Pakete grafisch darzustellen
Versuchen Sie, nur den Kohlenstoff am Ende der Kette mit SMARTS zu reagieren
[TensorFlow / Keras] Der Weg zum Zusammenstellen eines RNN Ihrer Lieblingsstruktur
Versuchen Sie, den Hintergrund und das sich bewegende Objekt des Videos mit OpenCV zu trennen
Versuchen Sie, sich mit Python bei qiita anzumelden
[Python] Legen Sie den Diagrammbereich mit matplotlib fest
Ich möchte mit dem Reim Teil1 umgehen
Versuchen Sie, sich der Teilsumme zu stellen
Versuchen Sie, die Kamera mit Pythons OpenCV zu verwenden
Ich möchte mit dem Reim part3 umgehen
Versuchen Sie, Kirschblüten mit xg Boost vorherzusagen
Versuch, SQLite3 mit Python zu handhaben [Hinweis]
Versuchen Sie, mit Pandas in ordentliche Daten umzuwandeln
Versuchen Sie schnell, Ihren Datensatz mit Pandas zu visualisieren
Python Amateur versucht die Liste zusammenzufassen ①
Erster Versuch von YDK mit Cisco IOS-XE
Versuchen Sie, die Datei mit dem Befehl less neu zu schreiben
Richten Sie die Farbleiste mit matplotlib an der Figur aus
Versuchen Sie, ein Bild mit Entfremdung zu erzeugen
Ich möchte mit dem Reim part2 umgehen
Ich möchte mit dem Reim part5 umgehen
Ich möchte mit dem Reim part4 umgehen
Der Weg zum Kompilieren zu Python 3 mit Thrift
Versuchen Sie, das Problem des Handlungsreisenden mit einem genetischen Algorithmus (Python-Code) zu lösen.
Versuchen Sie, das Problem des Handlungsreisenden mit einem genetischen Algorithmus zu lösen (Ausführungsergebnis)
Eine einfache Problemumgehung für Bots, um zu versuchen, Tweets mit demselben Inhalt zu veröffentlichen
[Überprüfung] Versuchen Sie, die Punktgruppe an der Optimierungsfunktion von Pytorch Part 1 auszurichten
Versuchen Sie, die 4-Kern-CPU des Raspberry Pi 2 mit Parallel Python zu verbrauchen
Versuchen Sie, Ihr eigenes AWS-SDK mit bash zu erstellen
Melden Sie sich mit SSH bei einem Remote-Server an