В neo4j между запросами
MATCH (a), (b)
WHERE a<>b
WITH length(shortestPath((a)-[]->(b))) AS dist, a, b
RETURN DISTINCT sum(1.0/dist) AS closeness, a
ORDER BY closeness DESC
и
MATCH (a), (b)
WHERE a<>b
WITH length(shortestPath((a)-[]->(b))) AS dist, a, b
RETURN DISTINCT sum(dist) AS closeness, a
ORDER BY closeness DESC
нет никакой разницы. То есть не происходит деление единицы на длину пути.
Для графа
CREATE (A {name: "A"})
CREATE (B {name: "B"})
CREATE (C {name: "C"})
CREATE (D {name: "D"})
CREATE (E {name: "E"})
CREATE (A)-[:TO]->(E)
CREATE (A)-[:TO]->(B)
CREATE (B)-[:TO]->(C)
CREATE (B)-[:TO]->(E)
CREATE (C)-[:TO]->(D)
CREATE (E)-[:TO]->(D)
CREATE (D)-[:TO]->(B)
оба запроса возвращают такой ответ:
"closeness" "a"
2 {"name":"B"}
2 {"name":"A"}
1 {"name":"C"}
1 {"name":"E"}
1 {"name":"D"}
Я хочу понять почему это присхотит.