如果满足特定条件,如何在 gremlin 查询中乘以 groupCount() 的某些值

问题描述 投票:0回答:0

所以,想象一个社交网络的简单图表,其中有个人资料节点和帖子节点。个人资料可以关注其他个人资料,个人资料也可以观看、点赞和发布帖子。总的来说,有 4 种类型的边。

然后,给定一个 target_profile 和一个配置文件列表,我想对该 target_profile 的配置文件列表进行排名。

我的想法很简单。我想看看每个配置文件对 target_profile 执行了多少类似的活动并计算它们。但我也想对 target_profile 遵循的配置文件执行的活动给予额外的权重,例如将它们乘以 3。然后只需按降序排列结果即可。

我可以轻松地分别进行这两个查询。

获取用户关注的个人资料:

g.V(TARGET_PROFILE).out('follows_profile').hasId(PROFILES_LIST)

为了获得每个配置文件完成的类似活动的数量

g.V(TARGET_PROFILE).out().in().hasId(PROFILES_LIST).groupCount().by(T.id)

但是由于我是 gremlin 查询(和一般的图形数据库)的新手,如果 target_profile 也遵循它们,我找不到一种方法来为每个配置文件的活动乘以 groupCount()。

我的代码到了这一步,但在那之后我不知道该怎么做:

g.V(TARGET_PROFILE).as('sourceProfile')
.out('follows_profile').hasId(PROFILES_LIST).as('followers')
.select('sourceProfile')
.out().in().hasId(PROFILES_LIST).groupCount().by(T.id).as('activities')
python database gremlin gremlinpython
© www.soinside.com 2019 - 2024. All rights reserved.