我甚至不确定这个问题的标题最能反映出我真正想做的事情,实际的问题内容也很混乱,因为我不确定我真正需要什么,但我依靠你伙计们帮助我。
我正在尝试找出基于简单直接路线生成航班搜索应用中更复杂和多路径路线的最佳方式。
假设我的路线表中有两条航线:
Origin Destination
MIA (Miama) ATL (Atlanta) and
ATL (Atlanta) LAX (Los Angeles)
通过这两个路由并发出一个简单的查询,例如:
SELECT ... FROM Routes WHERE origin = 'MIA' AND destination = 'LAX'
我没有得到任何结果,但如果我能够合并我拥有的所有数据,那么我将能够通过ATL(亚特兰大)提供这样的路线:MIA - > ATL - > LAX。
我正在调查Neo4J以保存我的数据并使用最短路径执行搜索,但我不确定我需要这么大的枪。截至目前我正在使用MySql,如果我正确构建数据,我想我应该能够做到。
我已经用Neo4J(http://blog.neo4j.org/2013/08/finding-shortest-path-through-park.html)研究了最短路径算法,但是我还有其他一些关于如何解决这个问题的问题,因为我对这类问题很新。
所以我的问题是:
非常感谢
答案 0 :(得分:1)
因此,在您的情况下,图表将是一种
(MIA)-[:CONNECTS]->(ATL)-[:CONNECTS]->(LAX)
所以你只需要查询
MATCH p=(f:LOCATION)-[:CONNECTS*1..3]->(g:LOCATION) where f.name = "MIA" and g.name="LAX" return nodes(p) as ConnectingAirports
因此,如果您对LOCATION
属性上的name
节点编制索引,它将使您的查询更快。此外,上述查询不仅会为您ATL
提供CONNECTS
,还会为您提供MIA
关联互联的所有其他路线位置,距离{{1}}位置的距离为1,2或3跳。