2016-07-20 12 views
1

Ich bin neu in Graph-Datenbanken und experimentiere derzeit mit Neo4j. Kann mir bitte jemand helfen mir zu verstehen:Was sind Labels in der Graph-Datenbank?

1) was genau sind die etiketten? 2) Wie/wo werden sie verwendet? 3) Warum brauchen wir sie? Können wir ohne sie arbeiten?

Ich habe über Etiketten gelesen, aber ich bin nicht in der Lage, dieses Konzept zu erfassen.

Danke.

Antwort

0

Bezeichnungen werden verwendet, um Knoten und Beziehungen in einem Diagramm zu benennen/zu kategorisieren/klassifizieren/typisieren, das keine Entitäten einer einzelnen Art darstellt.

Wenn alle Ihre Knoten z.B. Menschen und alle Ihre Beziehungen repräsentieren 2 Personen, die sich kennen, Sie brauchen keine Etiketten. Wenn Sie jedoch etwas Komplexeres modellieren, können Sie mit Labels direkt die Knoten und Beziehungen eingeben, anstatt sich auf eine oder mehrere Eigenschaften des Knotens oder der Beziehung zu beziehen, um dies zu beschreiben. Es ist eine standardisierte, sofort zugängliche Möglichkeit, die Natur der Entität zu beschreiben.

Oder in eine visuelle Art und Weise, Etiketten der Neo4j Browser erlauben verschiedene Farben :)

Neo4j browser

+0

AFAIK in Version 3.0.x Etiketten sind reserviert für [Knoten] (http://neo4j.com/docs/developer-manual/current/#graphdb-neo4j-nodes) während [Eigenschaften] (http: // neo4j .com/docs/developer-manual/current/# graphdb-neo4j-properties) sind beide für Knoten und Relationen. Es ist merkwürdig, da ich jemals eine Art von Labels auch für rels verwendet habe (z. B. '[: Type_of_rel]') – floatingpurr

+0

Beziehungen haben einen einzigen Typ, wohingegen Knoten mehrere Labels haben können, wie Sie in Ihrer Antwort bemerkt haben. Ja, es ist ein bisschen ein Sprachmissbrauch zu sagen, dass Beziehungen ein Label haben, aber es ist meiner Meinung nach das gleiche Konzept. –

+0

Ich weiß nicht, ob es nur eine Frage des Lexikons ist, ob es einen konkreten Unterschied zu Typen und Labels gibt ... – floatingpurr

2

mit Knoten von einer anderen Natur anzuzeigen, wie Sie in official doc lesen können, für Etiketten eine Art Klasse oder besser: ein Typ eines Knotens.

Ein Label ist ein benanntes Diagrammkonstrukt, das verwendet wird, um Knoten in Sets zu gruppieren; Alle Knoten, die mit demselben Label versehen sind, gehören zu demselben Set. Viele Datenbankabfragen können mit diesen Gruppen statt mit dem gesamten Graphen arbeiten, wodurch Abfragen einfacher geschrieben und effizienter ausgeführt werden können. Ein Knoten kann mit einer beliebigen Anzahl von Etiketten beschriftet sein, einschließlich keiner, wodurch Etiketten optional zur Grafik hinzugefügt werden können.

Bezeichnungen werden verwendet, wenn Sie Bedingungen definieren und Indizes für Eigenschaften hinzufügen (siehe Schema).

Ein Beispiel wäre ein Etikett mit dem Namen Benutzer, dass Sie alle Ihre Knoten mit Benutzern bezeichnen. Mit dieser Funktion können Sie Neo4j an bitten, Operationen nur auf Ihren Benutzerknoten durchzuführen, z. B. alle Benutzer mit einem bestimmten Namen zu finden.

Sie können jedoch Etiketten für viel mehr verwenden. Zum Beispiel, da die Labels während der Laufzeit hinzugefügt und entfernt werden können, können sie verwendet werden, um temporäre Zustände für Ihre Knoten zu markieren. Sie können ein Offline-Label für Telefone erstellen, die offline sind, ein Happy Label für glückliche Haustiere und so weiter.

Es ist wichtig zu sagen, dass ein Knoten mehrere Labels haben kann. Zum Beispiel könnte die node, die Benedict Cumberbatch darstellt, wie folgt bezeichnet werden: Person, Man, Actor und British.

Sie können Knoten anhand von Beschriftungen abfragen.Es bedeutet, dass die Benedict Cumberbatch der node zu jedem dieser Sätze gehört, und es wird in jedem Result der folgenden Abfragen zurückgegeben werden:

MATCH (p:Person) return p 
MATCH (p:Man) return p 
MATCH (p:Actor) return p 
MATCH (p:British) return p 

Labels sind nicht obligatorisch, aber mit ihnen ist eine gute Praxis, um Ihre Daten zu kategorisieren und sie nach Typen bekommen.