在Neo4j中加载加权图

时间:2019-02-10 14:20:14

标签: neo4j cypher

我正在尝试从下面的Neo4j中显示的graphUnioned.csv中导入一个加权图: enter image description here

在上图中,只有我的p加权了,并表示边缘权重(例如1.361、3.76等)。 s和o表示节点名称,即:431、9812、18558、75、10122、10144、10289、10304。

用于加载我正在使用的csv文件:

LOAD CSV WITH HEADERS FROM "file:\\graphUnioned.csv" AS csvLine 
MERGE (s:Node {value:csvLine.s}) 
MERGE (o:Node {value:csvLine.o}) 
MERGE (s)-[:REL {weight: csvLine.p}]->(o) 
RETURN *;

然后我使用以下命令对页面进行排名:

CALL algo.pageRank.stream('node', 'REL', {iterations:20, dampingFactor:0.85, weightProperty: "weight"})
YIELD node, score;

但是,加载的图和页面排名算法似乎都没有在加权图上运行。有人可以帮我找出我要去哪里哪里

2 个答案:

答案 0 :(得分:2)

节点标签区分大小写。您的节点具有标签Node。因此,您必须将Node(而不是node)作为algo.pageRank.stream()的第一个参数。

答案 1 :(得分:1)

尝试将重量作为浮点值导入。

LOAD CSV WITH HEADERS FROM "file:\\graphUnioned.csv" AS csvLine 
MERGE (s:Node {value:csvLine.s}) 
MERGE (o:Node {value:csvLine.o}) 
MERGE (s)-[:REL {weight: toFloat(csvLine.p)}]->(o);