我想问一下,我怎么能用Spring引导找到Dijkstra。
我目前使用spring-boot-starter-data-neo4j库将Neo4j映射到我的java类。
我想现在使用org.neo.graphalgo graphalgo库中的Dijkstra和所有路径算法。
有可能这样做吗?或者同样可以理解任何其他替代方式。
EDIT ------------------------
我已经将我的所有Neo4j节点映射为Java中的以下内容并且它们可以正常工作。我现在只想使用你提到的graphalgo库。我很困惑,现在我可以使用它。
btw所有代码都在这里:https://github.com/aamalik/neo4j-gtfs
@NodeEntity
public class Stop {
@GraphId
private Long id;
@Property(name="name")
private String name;
@Property(name="lon")
private double longitude;
@Property(name="lat")
private double latitude;
@Property(name="id")
private String stopId;
}
答案 0 :(得分:1)
要为Neo4j使用图算法,您需要neo4j-graph-algo maven依赖。但是根据Spring Boot Dependency versions没有提供它,所以你必须手动将它包含在POM文件的依赖项部分中:
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-graph-algo</artifactId>
<version>3.3.2</version>
</dependency>
现在,您可以使用GraphAlgoFactory提供的methods来计算 start node和 end 节点之间最便宜的路径:
public Path calculateCheapestPath(Node start, Node end) {
PathFinder<WeightedPath> finder = GraphAlgoFactory.dijkstra(PathExpanders.allTypesAndDirections(), "cost");
return finder.findSinglePath(start, end);
}
有关图算法示例,请参阅here。
答案 1 :(得分:0)
请回答这个问题,了解我的所作所为。 Dijkstra algorithm with Neo spring boot