Я використовую Neo4j1.9m05. Я хочу розрахувати найкоротший шлях між кожною парою вузлів. Зараз я використовую цей запит Cypher:
START a=node(1), b=node(1-1000) MATCH p=shortestPath(a-[:cooperate*..50]-b) RETURN length(p)
1-1000 просто означає, що є 1000 вузлів. Цей простий запит коштує більше 2 хвилин, що занадто повільно. Я просто хочу надіслати запит на 1000 пар найкоротшого шляху. Чи може хто-небудь допомогти?
Відповіді:
1 для відповіді № 1Що спробувати
Ви запустили запит у холодній кеш-пам'яті? Спробуйте запустити його двічі, щоб перевірити.
Перевірте, чи є достатньо пам'яті. Найкоротші запити на шляхи приймають величезний удар, якщо релевантна частина графіка не вміщається в кеш.
Я помітив, що ви шукаєте неорієнтований шлях. Ви можете допомогти алгоритму, вказавши напрям, якщо це можливо.