繁体   English   中英

在neo4j中加载csv时,不要创建所有关系

[英]when loading csv in neo4j do not create all the relationships

对所有人都好,请帮助我解决这个问题:D

当我执行查询时:

USING PERIODIC COMMIT LOAD CSV WITH HEADERS FROM "file:///Create_all.csv" AS row
MATCH(x:Category{uuid:row.uuid_category}) 
MERGE (t:Subscriber{name:row.name_subscriber, uuid:row.uuid_subscriber})
CREATE (n:Product{name: row.name_product, uuid: row.uuid_product}),
(Price:AttributeValue{name:'Price', value: row.price_product}),
(Stock:AttributeValue{name:'Stock', value: row.stock_product }),
(Style:AttributeValue{name:'Style', value: 'Pop Art'}),
(Subject:AttributeValue{name:'Subject', value: 'Portrait'}),
(Originality:AttributeValue{name:'Originality', value: 'Reproduction'}),
(Region:AttributeValue{name:'Region', value: 'Japan'}),
(Price)-[:IS_ATTRIBUTEVALUE_OF]->(n),
(Stock)-[:IS_ATTRIBUTEVALUE_OF]->(n),
(Style)-[:IS_ATTRIBUTEVALUE_OF]->(n),
(Subject)-[:IS_ATTRIBUTEVALUE_OF]->(n),
(Originality)-[:IS_ATTRIBUTEVALUE_OF]->(n),
(Region)-[:IS_ATTRIBUTEVALUE_OF]->(n)
  WITH (n),(t),(x)     

create  (n)-[:OF_CATEGORY]->(x)
create (t)-[:SELLS]->(n)

我的csv格式如下:

我有4个类别,30个产品和10个订阅者创建了我:

添加164个标签,创建164个节点,设置328个属性,创建184个关系,并在254毫秒后完成。

我用以下方法验证结果:

匹配p =()-[r:OF_CATEGORY]->()返回计数(r)

创建了23个关系,但是未创建其余7个关系。

请引导我进行查询,在这种情况下,应创建所有关系,并将是30个具有类别的关系产品

关键部分是MATCH(x:Category{uuid:row.uuid_category})

如果某行的匹配失败,则该行将被清除,并且该行的其他任何操作都将不会执行。

由于您的输入内容包含4个相同类别的内容(我们分别称为1,2、3和4),因此重复7次(到目前为止总共28行),然后其中两个重复出现一次(如果两次都重复两次)如果成功,则总共有30行),如果您的某些匹配失败,则有意义:带有某些uuid_category属性的:Category节点实际上并未出现在图形中。

在这些uuid(1、2、3和4)中,只有1和2出现在末尾(因此,这两行跨越8行,而uuid 3和4则发生7次)。 如果uuid 3或uuid 4在图中没有对应的节点,这将是有道理的。 这将使我们得到1 * 7 + 2 * 8 = 23,这是您的查询正在创建的关系数。

因此,uuid_category没有以3或4结尾的:Category节点。

根据数据检查图表以确认。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM