Używam Neo4j1.9m05. Chcę obliczyć najkrótszą ścieżkę między każdą parą węzłów. Teraz używam tego zapytania:
START a=node(1), b=node(1-1000) MATCH p=shortestPath(a-[:cooperate*..50]-b) RETURN length(p)
1-1000 oznacza po prostu 1000 węzłów. To proste zapytanie kosztuje więcej niż 2 minuty, czyli zbyt wolno. Chcę zapytać o 1000 par o najkrótszej długości ścieżki. Czy ktoś może pomóc?
Odpowiedzi:
1 dla odpowiedzi № 1Rzeczy do wypróbowania
Czy uruchomiłeś zapytanie w zimnej pamięci podręcznej? Spróbuj uruchomić go dwukrotnie, aby zweryfikować.
Sprawdź, czy jest wystarczająca ilość pamięci. Najkrótsze zapytania o ścieżki przynoszą ogromne trafienie, jeśli odpowiednia część wykresu nie mieści się w pamięci podręcznej.
Zauważyłem, że szukasz nieukierunkowanej ścieżki. Możesz pomóc algorytmowi, określając kierunek, jeśli to możliwe.