Neo4j创建内存图报错:默认值类型不匹配问题求助
问题解决:GDS内存图投影时默认值类型不匹配错误
错误根源
报错提示Expected type of default value to be float[]. But got Long,核心问题出在**fastRP_embedding属性的默认值设置**:
- 你指定的
fastRP_Extended_Embedding是FastRP算法生成的嵌入向量,类型为浮点数组(float[]) - 但你设置的默认值
0是Long整数类型,和属性实际类型不匹配,触发了类型校验失败。
修复方案
将fastRP_embedding的defaultValue修改为与嵌入向量维度一致的浮点数组。比如你的FastRP嵌入是128维,就设置全0的128维浮点数组;若不确定维度,也可以设置单元素浮点数组(需确保和实际数据兼容)。
修改后的代码示例
CALL gds.graph.project( 'marvel_model_data', { Character: { label: 'Model_Data', properties: { fastRP_embedding:{property:'fastRP_Extended_Embedding', defaultValue:[0.0, 0.0, 0.0]}, // 替换为对应维度的浮点数组 strength:{property:'strength', defaultValue:0}, durability:{property:'durability', defaultValue:0}, intelligence:{property:'intelligence', defaultValue:0}, energy:{property:'energy', defaultValue:0}, speed:{property:'speed', defaultValue:0}, is_xman:{property:'is_xman', defaultValue:0} } }, Holdout_Character: { label: 'Holdout_Data', properties: { fastRP_embedding:{property:'fastRP_Extended_Embedding', defaultValue:[0.0, 0.0, 0.0]}, // 同步修改此处 strength:{property:'strength', defaultValue:0}, durability:{property:'durability', defaultValue:0}, intelligence:{property:'intelligence', defaultValue:0}, energy:{property:'energy', defaultValue:0}, speed:{property:'speed', defaultValue:0}, is_xman:{property:'is_xman', defaultValue:0} } } }, { APPEARED_WITH: { type: 'APPEARED_WITH', orientation: 'UNDIRECTED', properties: ['times'], aggregation: 'SINGLE' } });
补充说明
- strength、durability等属性的默认值
0是合法的,因为这些属性本身为整数类型,和Long类型兼容。 - 若不清楚
fastRP_Extended_Embedding的具体维度,可先运行MATCH (n:Model_Data) RETURN n.fastRP_Extended_Embedding LIMIT 1查看实际向量维度,再对应设置默认值数组的长度。
内容的提问来源于stack exchange,提问作者chris
相关产品推荐
相关产品推荐

