【问题标题】:Neo4j max depth and pathNeo4j 最大深度和路径
【发布时间】:2019-02-25 02:20:58
【问题描述】:

简单的问题是:如何使用 neo4j (2.3.11) cypher 计算节点的最大深度值和最大深度路径?

我的场景说明

我有名为 person 的节点标签和名为 supervised 的关系类型。

考虑一个场景:一个节点1可以监督22可以监督344可以监督5等。

所以 1 需要:

  1. 我想制作一个接收 id 的密码,例如1(personID),作为参数,返回路径[1, 2, 4, 5 ....]

  2. 还有另一个返回路径计数的密码。


我在第二种情况下尝试了该密码(neo4j 2.3.11),但没有成功:

MATCH (person:Person)-[SUPERVISED*]->()
WITH person, LENGTH(SUPERVISED) AS depth
where person.personID = 'la3486551918237738'
RETURN person, depth;

基于this solution

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

    您可以在单个查询中获取最大深度和 ID 列表:

    MATCH path=(person:Person)-[:supervised*]->(x)
    WHERE person.personID = 'la3486551918237738' AND NOT EXISTS((x)-[:supervised]->())
    WITH person, path
    ORDER BY LENGTH(path) DESC
    LIMIT 1
    RETURN person, [n IN NODES(path) | n.personID] AS ids, LENGTH(path) AS depth
    

    注意事项:

    • 我假设supervised 是必需的关系类型。请注意,在 Cypher 模式中使用时,冒号必须位于关系类型之前,例如 [:supervised*]
    • NOT EXISTS((x)-[:supervised]->()) 测试要求找到的路径以叶节点结尾。
    • ORDER BY LENGTH(path) DESC LIMIT 1 选择最长的路径。

    [更新]

    your sample data linked to in the comments发现以下问题:

    1. Relations.csv 文件的studentIDs 中没有一个在Nodes.csv 中显示为personID。 (由于您指出这只是示例中的一个疏忽,我只是在我自己的文件副本中修复了这个问题。)
    2. 第一个LOAD CSV 查询包含不需要的OPTIONAL MATCH
    3. 第二个LOAD CSV 查询需要csvFile.institution 属性,但Relations.csv 文件不包含institution 标头(它有一个university_name 标头)。因此,将 csvFile.institution 替换为 csvFile.university_name 可以修复第二个查询。

    【讨论】:

    • 我试过了,但没有结果:( { "columns": ["person", "ids", "depth"], "data": [], "stats": { " contains_updates”:假,“nodes_created”:0,“nodes_deleted”:0,“properties_set”:0,“relationships_created”:0,“relationship_deleted”:0,“labels_added”:0,“labels_removed”:0,“indexes_added” :0,“indexes_removed”:0,“constraints_added”:0,“constraints_removed”:0 } }
    • 您能否提供一些显示问题的示例数据?
    • 我可以发送带有数据的 csv 吗?还是您更喜欢打印屏幕或其他类型?
    • 我可以,使用 Cypher 语句来创建数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    相关资源
    最近更新 更多