在 Neo4j 中寻找最短路径函数应用于现实生活中的问题

Finding Shortest Path function in Neo4j applied to real life problems

问题

1.) 对于“通用计算”途径,哪个模块影响最大 (即,是大多数模块的必修课)?

2.) 如果学生在第一年的某个模块不及格,则显示路径 完成课程至少需要 4 年(注意:所有模块都在 需要完成该途径才能完成课程)。

请帮忙

  1. 如果我理解你的数据模型,这可能有效:

    MATCH (m:Module)<-[r:PRE_REQUISITE]-(:Module)-[:ON]->(pw:Pathway)
    WHERE pw.title = 'General Computing' AND r.type = 'Compulsory'
    RETURN m, COUNT(*) AS impact
    ORDER by impact DESC
    LIMIT 1
    
  2. 您提供的信息不足。我们不知道每个模块需要多长时间才能完成,多久提供一次,是否需要考虑 level 属性 以及如何考虑,还有哪些其他 type 值以及它们是什么都是真正的意思,等等。似乎人们真的想要 maximum 4 年,而不是 minimum.

我觉得第一个问题的答案应该是这样的:

匹配(模块)<-[r:PRE_REQUISITE{type: "Compulsory"}]-(m:Module)-[:ON]->(p:Pathway{title: "General Computing"}) return module.title 作为模块名称,计数 (*) 作为 highest_impact

按 highest_impact 顺序排序 限制 1