2013-03-12 9 views
11

Ich habe Beziehungen zwischen Knoten, die nur für eine bestimmte Zeit gültig sind. Einfaches Beispiel: Person P lebte von Zeitpunkt t1 bis Zeitpunkt t2 in Adresse A. Ich kann eine valideFrom- und eine validUntil -Eigenschaft in die Beziehung einfügen, aber wenn ich cypher verwende, muss ich dies in der WHERE-Klausel filerieren, aber ich würde es in der MATCH-Klausel haben wollen.Neo4J Beziehungen mit Zeitbeschränkungen

Der Grund, warum ich das in der MATCH-Klausel möchte, ist, dass es möglicherweise einen großen Teilgraphen durchqueren kann, nur um später herauszufinden, dass das meiste davon ignoriert werden könnte. Dies gilt insbesondere für eine große Anzahl historischer Beziehungen.

Ich kann separate valideFrom und validUntil Beziehungen zu bestimmten Datumsknoten machen. Auf diese Weise kann ich MATCH verwenden. Dies wäre in Ordnung, wenn ich eine begrenzte Anzahl solcher Zeitknoten hätte, aber wenn ich Zeitstempel speichern muss, ist dies nicht praktikabel.

Wie können Sie Cypher für diese Art der Abfrage optimieren? Wie wird ein Graph mit Knoten und Beziehungen mit Zeitinvaliditätsindikatoren zeitlich gestaffelt?

+0

Cypher automatisch Ausdrücke in Übereinstimmung Klauseln zieht, wann immer möglich, so dass sie so schnell ausgewertet, wie sie sein können. –

+0

Können Sie Ihre Anfrage tatsächlich anzeigen? –

+0

Haben Sie eine Lösung gefunden, die dafür funktioniert? – John

Antwort

4

Haben Sie die Timeline-Modellierung gesehen hier beschrieben: http://docs.neo4j.org/chunked/milestone/cypher-cookbook-path-tree.html

+1

Das funktioniert für begrenzte Ereigniszeiten, aber Sie können die Zeit nicht auf Sekunden oder weniger modellieren. Es ist das, was ich bereits vorgeschlagen habe, aber nicht skaliert. – ignazw

+0

Wie wäre es mit einem Split-Modell, bei dem Sie sich mit dem oben genannten Modell um Tage kümmern und nur die Zeit auf dem Knoten behalten? Nicht sicher über die Art der Daten, die Sie haben, aber Sie könnten auch das gleiche Modell auf die Zeit erweitern und nur die Zeitbeziehungen auf Anfrage erstellen ... wieder kann dies für das Datenmuster, das Sie haben, unpraktisch sein – Luanne