Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从neo4j图形数据库获取特定路径_Neo4j_Cypher - Fatal编程技术网

从neo4j图形数据库获取特定路径

从neo4j图形数据库获取特定路径,neo4j,cypher,Neo4j,Cypher,我们使用的是Neo4j 2.1.4社区版 在获取neo4j中的具体路径时,我们面临一些问题 下面是使用的csv文件。 在graph数据库中,我们正在创建Product、Company、Country和Zipcode节点,并在每个级别创建关系类型为“MyRel”的节点。在上面的数据中,我们希望区分每个路径 就是 移动、谷歌、美国、88888——作为路径1 移动电话、谷歌、美国——作为路径2 移动、谷歌——作为路径3 这就是为什么我们在数据文件中又创建了一个名为Path的列,并将Path值作为re

我们使用的是Neo4j 2.1.4社区版

在获取neo4j中的具体路径时,我们面临一些问题

下面是使用的csv文件。

在graph数据库中,我们正在创建Product、Company、Country和Zipcode节点,并在每个级别创建关系类型为“MyRel”的节点。在上面的数据中,我们希望区分每个路径

就是

移动、谷歌、美国、88888——作为路径1

移动电话、谷歌、美国——作为路径2

移动、谷歌——作为路径3

这就是为什么我们在数据文件中又创建了一个名为
Path
的列,并将
Path
值作为relatioship属性进行维护。因此,每当有人想要查看不同的路径时,他都可以基于关系属性1、2或3进行查询。对于eample,无论何时查询relationship属性,我们都应该得到
Mobile、Google、US

但每当我这样做的时候,在图中,它就是为Country和Zipcode创建虚拟节点。这是因为在第二行和第三行,zip和country值为空(null)

使用的查询:

LOAD CSV WITH HEADERS FROM "file:C:\\WorkingFolder\\Neo4j\\EDGE_Graph_POC\\newdata\\trial1.csv " as file
MERGE (p:Product {Name:file.Product})
MERGE (comp:Company {Name:file.Company})
MERGE (c:Country {Name:file.Country})
MERGE (zip:Zipcode{Code:file.Zipcode})
CREATE (p)-[:MyRel{Path:file.Path}]->(comp)-[:MyRel{Path:file.Path}]->(c)-[:MyRel{Path:file.Path}]->(zip)
结果图:

LOAD CSV WITH HEADERS FROM "file:C:\\WorkingFolder\\Neo4j\\EDGE_Graph_POC\\newdata\\trial1.csv " as file
MERGE (p:Product {Name:file.Product})
MERGE (comp:Company {Name:file.Company})
MERGE (c:Country {Name:file.Country})
MERGE (zip:Zipcode{Code:file.Zipcode})
CREATE (p)-[:MyRel{Path:file.Path}]->(comp)-[:MyRel{Path:file.Path}]->(c)-[:MyRel{Path:file.Path}]->(zip)

那么如何避免创建虚拟节点呢

有没有更好的选择来获得正确的路径


谢谢,

首先,一个简单的解决方案是跟随LOAD CSV查询,与其他人一起清理图形。运行查询

MATCH (zip:Zipcode { Code : ''})<-[r]-()
DELETE zip, r

MATCH(zip:Zipcode{code:''})您可以使用

WHERE file.Country <> '' and file.Zipcode <> ''
其中file.Country“”和file.Zipcode“”
把你的作品分成两部分

CREATE (p)-[:MyRel{Path:file.Path}]->(comp)
WHERE file.Country <> '' and file.Zipcode <> ''
MERGE (c:Country {Name:file.Country})
MERGE (zip:Zipcode{Code:file.Zipcode})
CREATE (comp)-[:MyRel{Path:file.Path}]->(c)-[:MyRel{Path:file.Path}]->(zip)
CREATE(p)-[:MyRel{Path:file.Path}]>(comp)
其中file.Country“”和file.Zipcode“”
合并(c:Country{Name:file.Country})
合并(zip:Zipcode{Code:file.Zipcode})
创建(comp)-[:MyRel{Path:file.Path}]->(c)-[:MyRel{Path:file.Path}]->(zip)