【发布时间】:2014-03-06 17:10:30
【问题描述】:
这个问题类似于这个:create relationships between nodes in parallel 和这个Neo4j: Best way to batch relate nodes using Cypher?
我想使用 Cypher 查询和 Neo4jClient(Neo4j 的 c# 客户端)参数化批处理以创建关系。
我将如何写出来(特别关注性能) - 即仅使用 match 和 create 语句而不是 Merge,因为由于某种原因合并最终超时?
我在想我可以做这样的事情(如第二个 SO 链接中所述)
MATCH (s:ContactPlayer {ContactPrefixTypeId:{cptid}})
MATCH (c:ContactPrefixType {ContactPrefixTypeId:{cptid}})
CREATE c-[:CONTACT_PLAYER]->s
带参数:
{
"query":...,
"params": {
"cptid":id1
}
}
但这不起作用,因为它试图将属性匹配为数组。
我将其修改为使用WHERE x.Y IN {params},但这非常慢。第二个建议是尝试使用 Neo4j 的事务端点,但我不确定如何使用 Neo4jClient 来做到这一点。
这是上面第二个 SO 链接的建议:
{
"statements":[
"statement":...,
"parameters": {
"cptid":id1
},
"statement":...,
"parameters": {
"cptid":id2
}
]
}
我确实看到了这个拉取请求,但还没有看到它已经实现:https://github.com/Readify/Neo4jClient/pull/26
如果没有事务支持,还有其他方法吗?
【问题讨论】:
标签: neo4j neo4jclient