用于GDS计算的Neo4j图形生成

用于GDS计算的Neo4j图形生成,neo4j,cypher,graph-databases,graph-data-science,Neo4j,Cypher,Graph Databases,Graph Data Science,我正在处理一个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:

我正在处理一个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('mySampleGraph',['A', 'B'],['HAS_SENT'])
现在我希望使用不同的图形数据科学库对文件执行各种计算。为了为此投影一个图,我使用
调用gds.graph.create.estimate(['a'],['HAS_SENT'])
对其进行了估算,该估算返回了851个节点和1299个关系

CALL gds.graph.create('mySampleGraph',['A', 'B'],['HAS_SENT'])
但是,当我尝试创建图形时,
调用gds.graph.create('mySampleGraph',['A'],['HAS_SENT'])
,它返回相同数量的节点,但关系为0


我遗漏了什么,我如何才能正确地获得映射?

根据导入查询判断,您的关系只存在于节点A和B之间。标记为A的节点之间没有关系。通常,仅加载同时具有节点投影部分中描述的源节点和目标节点的关系。在您的情况下,不存在同时具有标签a的源节点和目标节点的关系。如果同时加载标签a和B,则GDS应加载所有关系

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

顺便说一句。。。有什么特别的原因让我们用两个标签代替一个吗?

这很有效,非常感谢。这是我在Neo4j GDS中的第一个实例。示例CSV只是我数据的一部分,项目要求之一要求我处理两个标签。