neo4j 如何创建一个加权顶点在密码图形数据库?

klsxnrf1  于 2023-03-18  发布在  其他
关注(0)|答案(1)|浏览(167)

我试图了解哪个用户有最大的影响力的基础上,由用户所做的评论的数量,我使用以下代码来投影我的图表

CALL gds.graph.project.cypher(
            'last_try',
            'match (n) WHERE (n:USER) OR (n:REVIEWS) return id(n) AS id',
            'MATCH (u:USER)<-[:POSTED]-(r:REVIEWS)<-[:REVIEWED]-(b:BEERS)
            RETURN id(u) AS source, id(b) AS target, count(distinct r) as weight'
            )

我试图创建一个权重变量,但当我通过算法运行它时,我没有收到任何东西,或者ai收到静态值

CALL gds.pageRank.stream('last_try', {relationshipWeightProperty:'weight'})
            YIELD nodeId, score
            RETURN gds.util.asNode(nodeId).username AS name, score
            ORDER BY score desc
            limit 5

这里还有一个算法,我试图运行,但不成功,我不能得到一个逻辑结果
我试着实现不同的解决方案,但我没有找到任何解决方案,我试着计算那些用户所做评论的属性,而困难的部分是理解权重参数的属性。

gcuhipw9

gcuhipw91#

下面是一个查询,用来显示该用户的评论数量。它将根据用户对任何啤酒发表评论的次数,在评论上添加一个新属性“权重”。

MATCH (u:USER)
WITH u
MATCH (u)<-[p:POSTED]-(r:REVIEWS)<-[rw:REVIEWED]-(b:BEERS)
WITH u, count(r) as cnt, collect(distinct r) as reviews
UNWIND reviews as r
SET r.weight =  cnt

例如:

╒════════════════════════════════╕
│"review"                        │
╞════════════════════════════════╡
│{"review":"review11","weight":2}│
├────────────────────────────────┤
│{"review":"review12","weight":2}│
├────────────────────────────────┤
│{"review":"review21","weight":1}│
├────────────────────────────────┤
│{"review":"review32","weight":1}│
└────────────────────────────────┘

相关问题