【问题标题】:Match node with multiple properties in neo4j在 neo4j 中匹配具有多个属性的节点
【发布时间】:2014-11-19 14:57:47
【问题描述】:

我在使用当前数据模型时遇到了问题,想知道是否有人可以提出更好的方法来构建我的数据。 我标记为“人员”的节点有 5 到 10 个属性,每个属性如下:姓名、地址、国籍、电话、年龄……而且没有可以用作索引的唯一属性。

因为我不想重复,所以每次我创建一个新人时,我都会使用 MERGE 而不是 CREATE。但问题是,在一个节点上匹配 5-10 个属性的地方进行 MERGE 会极大地减慢查询速度。

那么,将每个 Person 节点中的属性作为标记为 Address、Nationality、Phone、Age 的单独节点取出是否有助于我的 MERGE 查询的性能?还有其他可能的解决方案吗?

提前致谢!

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

    如何为每个人生成一个唯一的 GUID/UUID 并将其用作每个人的 ID?然后您可以快速合并该属性并使用 ON CREATE 设置其他属性,例如

    MERGE (p:Person {id: 'abcd-efgh-...'})
    ON CREATE SET p.name = "mark", p.address = "..."
    

    如果不是,那么可能是所有这些属性的哈希或组合作为您的密钥,例如

    MERGE (p:Person {id: "name-address-nationality-phone"})
    ON CREATE SET p.name = "...", p.address =  "..."
    

    【讨论】:

    • 我不能使用 guid,但哈希组合绝对是我正在考虑尝试的解决方案...谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多