mam dwa następujące typy węzłów:Get węzły, które nie mają pewien związek (cypher/neo4j)
c:City {name: 'blah'}
s:Course {title: 'whatever', city: 'New York'}
Patrząc do stworzenia tego:
(s)-[:offered_in]->(c)
próbuję dostać wszystkie kursy, które NIE są powiązane z miastami i tworzą związek z miastem (miasto powstaje, jeśli nie istnieje). Jednak problem polega na tym, że mój zbiór danych to około 5 milionów węzłów i każde zapytanie, które robię, przekracza limit czasu (chyba że robię to z przyrostem 10 000).
... ktoś ma jakieś rady?
EDIT:
Oto zapytanie do pracy używam teraz (to musi być zrobione w 10k kawałki (spośród milionów), ponieważ zajmuje kilka minut, jak to jest, gdy tworzy miasto nie robi. „t istnieje):
match (j:Job)
where not has(j.merged) and has(j.city)
WITH j
LIMIT 10000
MERGE (c:City {name: j.city})
WITH j, c
MERGE (j)-[:in]->(c)
SET j.merged = 1
return count(j)
(na razie nie wiem o dobrym sposobem, aby odfiltrować te już dopasowane, więc stara się zrobić to oznaczając ją zwyczaju«połączone»atrybut, który mam już indeks on)
Czy możesz podzielić się tym, czego aktualnie próbujesz? – JohnMark13
Nie sądzę, aby można było odpowiedzieć na to pytanie bez większej ilości kontekstu (i dopasowania twojego pytania do aktualizacji, zakładam, że zadanie == kurs i w == Oferowane). Czy korzystasz z istniejących danych, czy jest to import zbiorczy? Czy możesz powiedzieć nam trochę o swojej konfiguracji systemu? Zamiast "scalonego" możesz użyć WHERE NOT (j) - [: in] ->(). – JohnMark13
Czy widzisz limit czasu za pośrednictwem interfejsu przeglądarki? –