前言
问题
考虑到腿的离开/到达时间+其他约束条件,在原点和目的地之间的最短路径(现实世界,“路径”的后勤意义)是否可以被“查询”(也就是说,我可以用一个语句使用Gremlin控制台)?或是一个复杂的用例,我实际上需要编写一个程序来完成它?
用例/详细信息
我希望回答我的问题
从
ORIGINonDAY出发,我能在尊重[CONDITIONS]的情况下去DESTINATION吗?
好消息是,我只需要一个真实/错误的反应(那么limit(1)?)缺乏结果(例如,[])就足以表示“不”了。
条件是什么?
E 242吨,然后到达E 143DALE 244las在13:15) .因此,如果/当有连接时,我需要尊重到达和离开时间+某种缓冲(即旅行者在13:05到达而在13:06乘另一条腿出发的路径实际上不是一条有效的路径);累计旅行时间/费用限制。如果路径的总行程时间或总成本超过指定的限制,则对该问题的回答必须是“否”。(在这里,我相信我需要使用sack()来跟踪每一条腿的成本-财务和时间-并在任何一条腿被击中时退出repeat() until循环?)对不起b/c --我知道这不是一个好的StackOverflow问题,因为它在技术上并不具体--我希望至少会产生一些具体的技术建议。
用例似乎是在eBook中给出的航班路线示例的大学/专业版,这是一个全新的格里姆林.
发布于 2022-05-11 13:42:11
您可以通过多种方式对此进行建模。我看到有效使用的一种方法是实际上有两个图。这是第一个知道路线的。你用它找到从A到Z的x跳方法。然后使用第二个图,它跟踪实际航班,使用第一次搜索的结果,在所需的时间限制范围内查找航班。因此,首先是数据建模问题,然后是查询编写部分。显然,数据模型应该使查询尽可能高效。
有几篇与你的问题相关的有用的博客文章。他们提到了Neo4j,但实际上是相当通用的,主要集中在您问题的数据建模方面。
我将重点关注数据模型,一旦您有了数据模型,就会关注Gremlin查询。Amazon现在也支持openCypher作为另一种属性图查询语言。
如果您已经建立了一个数据模型,并且可以共享一个示例,那么我很乐意用一两个示例查询来更新答案。
https://stackoverflow.com/questions/72198242
复制相似问题