java.lang.IllegalArgumentException: 不支持的值字符串类型 [TEXT]

问题描述

我有一个看起来像这样的简单图表(几个人对电影进行了评论

(p: Person)-[r: review {rating}]->(m: Movie)

我想根据 GDS Node Similarity 的示例创建一个图表,我使用这个:

 CALL gds.graph.create(
    'myGraph',['Person','Movie'],{
        review: {
            type: 'review',properties: {
                rating: {
                    property: 'rating',defaultValue: 1.0
                }
            }
        }
    }
);

当我尝试这个时,我得到了下一个异常:

Failed to invoke procedure `gds.graph.create`: Caused by: java.lang.IllegalArgumentException: Unsupported type [TEXT] of value String("4"). Please use a numeric property.

我在日志中找不到任何有用的信息,为什么会出现此异常。对我做错了什么有任何想法吗?

解决方法

问题在于“rating”属性存储为字符串。您可以先将其转换为浮点数,然后运行完全相同的 GDS 查询。

因此,首先将 rating 属性转换为浮点数:

MATCH ()-[r:review]->()
SET r.rating = toFloat(r.rating)

现在重新运行相同的 GDS 查询,它应该可以工作了。