Neo4j 中用于 GDS 计算的图形生成

问题描述 投票:0回答:1

我正在处理一个 CSV 文件,其结构类似于:

aId, Amount, bId 
int, float, int 

这里aId、bId分别对节点A、B有约束。 最初加载节点和关系时,

LOAD CSV with headers FROM 'file:///abc.csv' as row
MERGE (a: A {aid: toInteger(row.aID)})
MERGE (b: B {bid: toInteger(row.bID)})
CREATE (a)-[:HAS_SENT {amt: toFloat(row.Amount)}]->(b)

有 1490 个标签和 1299 个关系。

现在我希望使用不同的图数据科学库对文件执行各种计算。为了为此绘制一个图表,我使用

CALL gds.graph.create.estimate(['A'],['HAS_SENT'])
进行了估计,返回了 851 个节点和 1299 个关系。

但是,当我尝试创建图表时,

CALL gds.graph.create('mySampleGraph',['A'],['HAS_SENT'])
,它返回了相同数量的节点,但关系为 0。

我错过了什么,我怎样才能获得正确的映射?

neo4j cypher graph-databases
1个回答
0
投票

从导入查询来看,您的关系仅存在于节点 A 和 B 之间。标记为 A 的节点之间不存在关系。一般情况下,仅加载同时具有节点投影部分中描述的源节点和目标节点的关系。在您的情况下,不存在同时具有标签 A 的源节点和目标节点的关系。如果您同时加载标签 A 和 B,则 GDS 应加载所有关系。

CALL gds.graph.create('mySampleGraph',['A', 'B'],['HAS_SENT'])

顺便说一句...有什么具体原因需要使用两个标签而不是一个吗?

© www.soinside.com 2019 - 2024. All rights reserved.