У меня есть график ~ 49M узлов и ~ 37M отношений (~ 7ГБ), и я выполняю следующий запрос:
MATCH (n:NAME {name: "dummy name"})-[:ID*1..2]-(similar_names:NAME {type:"name"}) RETURN DISTINCT(similar_names)
где запрос должен начинаться с узла, который имеет определенный атрибут имени "фиктивное имя" (который является уникальным), и получить все узлы с меткой "NAME" со значением атрибута типа "name", до тех пор, пока они связаны ребром типа ID. Этот запрос хорошо работает с точки зрения результатов, но занимает более 850 мс. Хотя изначально это не проблема, это только с глубиной до 2, и моя цель - бесконечная глубина прохождения. С - [: ID *] запрос не завершается (в течение 5 минут).
Я проиндексировал атрибуты для меток, используемых в этом запросе (которые должны адресовать ответы на другие вопросы SO, такие как this . Запросы были выполнены через браузер настольного компьютера neo4j, и я настроил 10 ГБ памяти на ' убедитесь, что «конфигурация памяти не является узким местом».
Есть идеи, как это можно оптимизировать? Или что я могу делать не так?