1
LOAD我想将导入的节点连接到已存在于数据库中的客户节点。这个想法是用Label TICKET查找所有导入的节点,并运行结果集并创建关系。neo4j通过CSV导入数据后优化关系检查(查询)
下面是代码我想出了第一种方法:
# Find nodes without relationship for label Ticket
MATCH (t:Ticket), (c:Customer)
WHERE NOT (t)--(c)
RETURN t.number as ticket_number, t.type as ticket_type,t.sid as ticket_sid
# Run through the resultset and execute for each found node
MATCH (t:Ticket { number: "xxx" }), (c:Customer {code: "xxx"})
MERGE (t)-[:IS_TICKET_OF]->(c);
有一个指数 ON:门票(数量) ON:客户(代码)
这种方式来处理它是非常慢,并且需要几分钟才能运行CSV文件。我希望有一种方法可以优化查询,或者找到一种方法来创建缺失的关系,因为它们首先查看它们,然后运行一个循环。
的CSV负载:
LOAD CSV FROM "file:c:..." AS csvLine
MERGE (t:Ticket { number: csvLine[0]})
也许它也细到在CSV导入已经建立的关系 - 可能像
MATCH (c:Customer {code:"xxx"})
MERGE (t) - [:IS_TICKET_OF]-> (c)
但我需要在查询弄清楚如何从字段中提取代码,因为我在CSV导入中具有类似“aaa/vvv/bbb/1234”的内容,并且只需要aaa作为上面的匹配项,因为它以ID身份存储在客户节点中。
任何提示是非常赞赏。
谢谢!