Я хочу найти все пути от конечного узла (E) до корневого узла (A).
(Не для какого-либо конкретного узла, поэтому здесь нет идентификатора или фильтра)
Модель данных показана на рисунке.
Я использовал базовый запрос Cypher, чтобы найти пути (от A до E):
MATCH path=(:A)-[:USE*]->(:E) RETURN path
Он продолжает работать и никогда не заканчивается.
Я пытался получить пути от C до E, используя:
MATCH path=(:C)-[:USE*]->(:E) RETURN path
Этот запрос может занять до 18 секунд, чтобы вернуть 18 тыс. Путей.
Я попытался использовать сканирование, но никаких улучшений за это время.
Как я могу улучшить этот обход, чтобы возвращать результаты за меньшее время?
Мне нужно получить результаты за 4-5 секунд.
Конфигурации системы:
Системная память 32 ГБ
Хранение: SSD
Текущий Neo4j Conf:
Размер кучи:
начально-12GB
макс-12GB
кэш: 12 ГБ
Размер базы данных: 1,6 ГБ