Database Reference
In-Depth Information
$ ruby importer.rb performance.tsv
Für die gesamten Daten kann das mehrere Stunden dauern, aber Sie kön-
nen den Prozess jederzeit abbrechen. Bei Ruby 1.9 verwenden Sie statt buil-
der.adapter :net _ http besser builder.adapter :em _ synchrony ,daseine
nicht-blockierende Verbindung aufbaut.
Rainierte Algorithmen
Mit unserer großen Spielfilm-Datenbank ist es an der Zeit, das REST-Inter-
face kurz an den Nagel zu hängen und uns wieder Gremlin zuzuwenden.
Kevin Bacon
Wir wollen spaßeshalber einen der berühmtesten existierenden Graph-Algo-
rithmen implementieren: den Kevin-Bacon-Algorithmus. Dieser Algorithmus
basiert auf einem Spiel, bei dem es darum geht, die kürzeste Verbindung
zwischen einem beliebigen Schauspieler und Kevin Bacon über Spielfilme zu
finden, in denen beide mitgespielt haben. Zum Beispiel hat Alec Guinness
in Kafka mit Theresa Russell gespielt, die in Wild Things mit Kevin Bacon
aufgetreten ist.
Bevor wir weitermachen, starten Sie die Gremlin-Console und öffnen den
Graphen. Dann legen wir einen eigenen Schritt namens costars mit dem
folgenden Code an. Das ähnelt dem friendsuggest von gestern. Er findet die
Co-Stars eine actor-Knotens (Schauspieler, die eine Kante mit den Filmen
des Ursprungs-Schauspielers teilen).
neo4j/costars.groovy
Gremlin.defineStep( 'costars' ,
[Vertex, Pipe ],
{
_ ().sideEffect{start = it}.outE( 'ACTED _ IN' ).
inV.inE( 'ACTED _ IN' ).outV.filter{
!start.equals(it)
}.dedup
}
)
Bei Neo4j geht es nicht so sehr darum, eine Wertemenge „abzufragen“, son-
dern eher darum, den Graph „durchzugehen“. Das Schöne an diesem Kon-
zept ist, dass der erste Knoten, den Sie „durchgehen“ auch der ist, der dem
Startknoten am nächsten ist (gemessen in einfacher Kante/Knoten-Distanz,
nicht in gewichteter Distanz). Wir wollen damit beginnen, unsere Start- und
End-Knoten zu finden.
 
Search WWH ::




Custom Search