为何Neo4j无法识别GDS的degree centrality度中心性查询?
问题原因及解决方案
- GDS版本命名空间差异
这是该问题的核心诱因。gds.degree.stream是GDS 2.0及以上版本才开放的正式稳定接口,若你安装的GDS为1.8及更早版本,度中心性还处于beta测试阶段,接口放置在beta命名空间下,对应正确调用语句为:
CALL gds.beta.degree.stream('influence_graph', { relationshipWeightProperty: 'score' }) YIELD nodeId, score RETURN gds.util.asNode(nodeId).name AS name, score AS followers ORDER BY followers DESC, name DESC
你提到的PageRank、介数中心性、接近中心性等算法更早纳入稳定接口范畴,因此不受版本命名空间调整影响,可以正常调用。
- 验证当前环境支持的接口名
你可以运行以下查询,直接列出当前GDS版本支持的所有度相关存储过程,确认适配的调用名称:
CALL gds.list() YIELD name WHERE name CONTAINS 'degree' RETURN name
- 注意事项
无需额外安装其他插件,度中心性是GDS内置能力,和APOC插件无关。如果要使用官方文档标注的gds.degree.stream接口,只需将GDS升级到与你当前Neo4j内核版本适配的2.0及以上版本即可,注意GDS版本必须和Neo4j内核版本严格对应,版本不匹配也会出现部分接口无法识别的异常。
内容的提问来源于stack exchange,提问作者CowCookie
相关产品推荐
相关产品推荐

