Я новичок в Cypher и не очень понимаю процесс настройки. Поэтому я подумал, что могу получить некоторую помощь здесь.
Я создаю приложение для маршрутизации и загружаю набор данных GTFS в neo4j. У меня есть около 1,2 млн. TripStops, и мне нужно создать отношения передачи между ними (тот же stop_id). Я сделал очень глупый запрос, чтобы сделать это:
MATCH (a:TripStop) With a Match(b:TripStop)
With b create (a)-[r:Prestup]->(b)
~ 166 000 000 000 оценочных строк
, которые я "обновил" до:
MATCH (a:TripStop) With a Match(b:TripStop)
With b where id(b)>id(a) and b.trip_id<>a.trip_id and b.stop_id=a.stop_id create (a)-[r:Prestup]->(b)
~ 41 000 000 000 оценочных строк
но я не знаю, как ускорить процесс, чтобы это не занимало много времени.
Буду рад любому совету, трюк
РЕДАКТИРОВАТЬ:
Я провел некоторое исследование и сделал индексы для stop_id, и теперь запрос приводит к следующему: изображение здесь
, что все еще не велико (187 166 925 оценочных строк для полный набор данных), но прогресс, я думаю, есть идеи, как ускорить его еще лучше?