2013-03-20 18 views
11

Ich bin neu in Scala und Neo4j. Ich möchte eine Neo4j-Datenbank mit Scala erstellen. Gibt es eine Ressource, wo ich einige fertige Code zum Erstellen von Knoten, Löschen von Knoten, Hinzufügen von Eigenschaften, Erstellen von Indizes usw. finden kann.Verwenden von Neo4j mit Scala

Vielen Dank.

+0

Einige Inhalte von http://neo4j.org/develop/scala –

Antwort

10

Eigentlich gibt es mehrere Möglichkeiten es hängt von (a), wie Sie mit Neo4j (Rest oder nicht) (b) Laufzeitumgebung kommunizieren wollen.

Wenn Ihre Anwendung mit einer REST nur Kommunikation in Ordnung ist und Sie in Ordnung sind, ANORM zu verwenden, um auf Ihre (Daten) zuzugreifen. Es gibt einen vielversprechenden Treiber, der momentan gut genug ist, um Cypher als Anforderungssprache zu verwenden. Sie können es dort finden (AnormCypher): https://github.com/AnormCypher/AnormCypher. Die Macht von ANORM ist eine Quelle für viele Diskussionen, aber ich denke, es hat viele gute Eigenschaften.

Es gibt auch den FaKod Scala-Treiber, der sehr komplett ist, und die zweite Version (M1 für jetzt) ​​wird auch REST-Fähigkeiten enthalten. Die Macht dieses Treibers (neo4j-scala) ist die saubere DSL, die es zu abstrakten traversalen Einbauten liefert, es ist ziemlich intuitiv und gut dokumentiert.

Auf der anderen Seite hatte ich meine driver eine Weile gestartet, hatte aber keine Zeit, viel Mühe zu investieren (es wird sich bald ändern). Die aktuelle Version ist immer noch grob und eng an eine Play-Anwendung gekoppelt. Aber dieser Treiber versucht, die Reaktivität der Zukunft (jetzt akka basiert) und der JSON API des Spiels zu nutzen. Allerdings sollte dieser Weg nicht der produktivste sein, da es an Dokumentation und Reinigung mangelt ... jede Hilfe ist willkommen ;-). Auch das ist ein Play-Plugin, dann ist es ziemlich einfach zu konfigurieren und zu injizieren.

Weitere Informationen in der Regel im Hinblick auf Treiber, sollten Sie es gehen:http://www.neo4j.org/develop/drivers

5

Sie vielleicht einen Blick auf gremlin-scala haben wollen. Es verwendet den Tinkerpop-Stack, der im Wesentlichen wie JDBC für relationale Datenbanken ist. Sie können es mit einer Reihe von Graph-Datenbanken einschließlich Neo4J verwenden. Es gibt einige grundlegende Beispiele auf der GitHub-Seite und weit mehr in der gremlin wiki.

Haftungsausschluss: Ich bin der Maintainer von Gremlin-scala;)

+0

Schöne Sachen! Ein Fahrer, um alle zu beherrschen. Ich mag den Tinkerpop-Stapel wirklich. –

0

Werfen Sie einen Blick auf renesca, die Sie von Scala verwenden, um die Neo4j REST-API können. Sie können Knoten und Beziehungen erstellen und ändern und alle Änderungen gleichzeitig beibehalten.

Für erweiterte Szenarien überprüfen Sie renesca-magic, die eine Abstraktionsschicht auf Renesca ist. Sie können leistungsstarke Typ sichere Diagrammschemas mit so wenig Code wie möglich definieren.

Einige Highlights sind:

  • Multiple Vererbung von Eigenschaften
  • HyperRelations (Verbindung von Knoten und Beziehungen)

Disclaimer: Ich bin ein Entwickler dieser Bibliotheken.