2017-01-04 5 views
1

Ich habe eine Frage zur Volltextsuche mit neo4j. Folgte den Anweisungen auf der Webseite, ich habe die Volltextsuche aktiviert.Volltext Suche in Neo4j

Full Text Search Guide

CREATE (p: Platz {name: "Chicago"})

1) Run the command: START n=node:node_auto_index("name:*C*") RETURN n; 
Result: 
+------------------------------+ 
| n       | 
+------------------------------+ 
| Node[65263]{name:"Chicago"} | 
+------------------------------+ 
1 rows 

2) Run the command: START n=node:node_auto_index("name:Chicago") RETURN n; 
Result: 
+---+ 
| n | 
+---+ 
+---+ 
0 row 

3) START n=node:node_auto_index("name=Chicago") RETURN n; 
Result: 
null 

Meine Frage ist: Wie wird die Suche ändern können (2) START n = Knoten: node_auto_index ("name : Chicago ") RÜCKKEHR n; um das Ergebnis Chicago zu geben?

Würden wir auch nicht den Feldnamen im Befehl angeben (d. H. Alle Felder durchsuchen, die das Schlüsselwort "Chicago" in allen Knoten enthalten)?

Danke.

Antwort

0

Sie können Schema-Indizes für exakte Übereinstimmungen verwenden. eine genaue Übereinstimmung versuchen, diese Syntax

CREATE INDEX ON :Place(name)

Für weitere Informationen http://neo4j.com/docs/developer-manual/current/cypher/schema/index/

sehen Wenn Sie aus irgendeinem Grund müssen noch einiges tun:

START n=node:node_auto_index(name="Chicago") RETURN n;

+0

kann leider noch nicht zur Folge haben, wenn diese laufen Syntax START n = Knoten: node_auto_index (name = "Chicago") RETURN n; Auch wenn ich dies auch kein Ergebnis liefere (dh suche das Wort welches mit C beginnt) START n = node: node_auto_index ("name: C * ") RETURN n; – anthonywong

+0

Was ist die Ausgabe von' index --get-config node_auto_index' Befehl (in neo4j-shell)? Haben Sie den Index nach dem Hinzufügen der Daten erstellt? Möglicherweise müssen Sie die Eigenschaften neu indizieren z . durch 'MATCH (p: Ort) WHERE EXISTS (p.name) SET p.name = p.name'. –

+0

Danke, es kann genaue Wörter nach Neuindex suchen. Es ist jedoch immer noch nicht in der Lage, die Wörter beginnend mit Ch zu suchen (dh START n = Knoten: Knoten_Auto_Index ("Name: ch *") RETURN n;). Oder ich sollte stattdessen "Start mit" -Syntax verwenden? – anthonywong

0

Können Sie wie versuchen Dies ? Exakte Übereinstimmung Chicago - START n = Knoten: Knoten_Auto_Index ('(Name: (Chicago))') RETURN n;

Spiel alle Knoten mit dem Namen Eigentum Chicago enthalten - START n = Knoten: node_auto_index ('(Name :(Chicago)') RETURN n;

Verwandte Themen