2014-02-08 15 views
12

Ich benutze Neo4j 2.0 Version. Angenommen, ich habe viele Datensätze, die als eines ihrer Felder ein Datum haben, und wenn wir viele Abfragen wie die Anzahl der Datensätze zwischen zwei bestimmten Daten usw. unterstützen müssen, denke ich, dass ich möglicherweise alle Datensätze nach Datum-Feld indizieren kann. Ist das korrekt? Dann, wie mache ich das. Alle Knoten vom Typ "RECORD" müssen indiziert sein. Wie kann ich das erreichen? Bitte beachten Sie, dass das Datum ein nicht eindeutiges Feld ist. Und wie kann ich die Date-Eigenschaft in den Datensätzen speichern? Wird Datum in CYPHER oder Neo4j unterstützt. Wie sortiere ich die Datensätze nach Datum?Neo4j DATE Datentypen

Antwort

17

Datumsangaben als Werte für Eigenschaften werden nicht direkt unterstützt. Abhängig von Ihrem Anwendungsfall speichern Sie in der Regel das millis seit epoch (aka date.getTime()) in einer langen Eigenschaft oder eine Zeichenfolgendarstellung mit einem DateFormatter (wenn es in Java land ist).

Die lange Darstellung ist besser geeignet, wenn Sie eine mathematische Operation mit Daten durchführen möchten. String ist besser, wenn Sie möchten, dass Ihre Eigenschaften ohne Konvertierung für Menschen lesbar sind.

Wenn Sie Indizes für Daten benötigen, ist der einfachste Ansatz das Speichern von Millis seit der Epoche und das Anwenden eines Schema-Indexes auf diesen.

+0

was meinst du mit epoch .. – user4654

+0

Nicht sicher über Ihre Client-Sprache, aber in JVM Welt können Sie 'date.getTime()' aufrufen und Sie erhalten die Anzahl der seit dem 1. Januar 1970 verstrichenen Millisekunden, siehe http : //docs.oracle.com/javase/7/docs/api/java/util/Date.html#getTime(). Das ist ein langer Wert, der als Eigenschaftswert gespeichert werden kann. –

+0

@ user4654: http://en.wikipedia.org/wiki/Unix_time – zarthross