gpt4 book ai didi

graph - 如何在密码查询中避免笛卡尔积并仍然在对象之间创建链接?

转载 作者:行者123 更新时间:2023-12-01 03:37:08 25 4
gpt4 key购买 nike

我导入了一个包含数千个设备的表。然后又导入了一张设备类型表,大概有20种左右。

当我编写下面的密码查询来关联它们时,Neo4j 警告我关于笛卡尔积。有没有更好的方法来创建关联?我应该在 CSV 导入期间完成吗?

MATCH (te:Equipment_Type),(e:Equipment)
WHERE te.type_id = e.type_id
CREATE (e)-[:TYPE_OF]→(te)

更新

在 CSV 导入期间,我尝试了 Brian sugested 的方法,并且工作得很好。
  • 先导入设备类型;
  • 然后在 Equipment(type_id) 上创建和索引;
  • 修改了CSV导入时搜索的代码。

  • 从 Neo4j 控制台:

    Added 100812 labels, created 100812 nodes, set 414307 properties, created 100812 relationships, statement executed in 33902 ms.



    编码:
    CREATE INDEX ON :Equipment(type_id)

    USING PERIODIC COMMIT 1000
    LOAD CSV WITH HEADERS FROM "http://localhost/Equipments.csv" AS row
    MERGE (e:Equipment {eqp_id: row.eqp_id, name: row.name, type_id: row.type_id})
    WITH e, row
    MATCH (te:Equipemnt_Type)
    WHERE te.type_id = row.type_id
    CREATE (e)-[:TYPE_OF]->(te)

    最佳答案

    对于您所谈论的数据大小,这没什么大不了的,特别是如果您在 Equipment_Type:type_id 上有索引的话。和 Equipment:type_id .这是警告你,因为当你第一次在一个小数据集上编写一个查询中的笛卡尔项目时,它看起来很快,然后随着你获得更多数据而快速增长。

    但是,是的,在 CSV 导入期间创建关系可能是处理它的最佳方法。

    关于graph - 如何在密码查询中避免笛卡尔积并仍然在对象之间创建链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33610182/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com