Ich arbeite an etwa 50000 Tweets als Knoten mit ähnlichen Daten wie unten gezeigt.Neo4J Optimsation zum Erstellen von Beziehungen zwischen Knoten
{ "date": "2017-05-26T09:50:44.000Z", "author_name": "djgoodlook", "share_count": 0, "mention_name": "firstpost", "tweet_id": "868041705257402368", "mention_id": "256495314", "location": "pune india", "retweet_id": "868039862774931456", "type": "Retweet", "author_id": "103535663", "hashtag": "KamalHaasan" }
Ich habe versucht, Beziehungen zwischen Tweets mithilfe von folgendem Befehl MATCH (a:TweetData),(b:TweetData) WHERE a.location = b.location AND NOT a.tweet_id = b.tweet_id CREATE (a)-[r:SameLocation]->(b) RETURN r
Und mit diesem Befehl I Beziehung machen nicht in der Lage war, die gleiche Lage zu machen, da es mehr als 20 Stunden dauert ist und immer noch nicht die Ergebnisse produziert. Während für die Hashtag-Beziehung es mit einem ähnlichen Befehl gut funktionierte, dauerte es ungefähr 5 Minuten. Ist ihre andere Methode, um eine Beziehung herzustellen oder diese Abfrage zu optimieren.
Danke für Ihren Vorschlag, es hat mir wirklich geholfen. Ich konnte den ersten Teil nicht verstehen, wo Sie gesagt haben, wie wir 50k^2 Lookups außer LIMIT und SKIP reduzieren sollen. ** Stellen Sie sicher, dass Sie einen Index haben: TweetData (Standort), das ist die wichtigste Änderung ** –
Lesen Sie die [Dokumentation zu Indizes und Einschränkungen] (http://neo4j.com/docs/developer-manual/current/cypher/schema/index /). Wenn Sie viele Knoten haben und einen Knoten eines bestimmten Typs nach einer bestimmten Eigenschaft suchen müssen, empfiehlt es sich, einen Index für das Label/die Eigenschaft zu haben, damit Ihre Übereinstimmung sehr schnell wird. – InverseFalcon