首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gremlin Neptune基于普通收视率计数查询相似用户

Gremlin Neptune基于普通收视率计数查询相似用户
EN

Stack Overflow用户
提问于 2022-01-31 20:29:47
回答 1查看 107关注 0票数 0

来自Tickerpop菜谱中的下列图表:

代码语言:javascript
复制
  g.addV("user").property("name", "alice").as("u1").
  addV("user").property("name", "jen").as("u2").
  addV("user").property("name", "dave").as("u3").
  addV("movie").property("name", "the wild bunch").as("m1").
  addV("movie").property("name", "young guns").as("m2").
  addV("movie").property("name", "unforgiven").as("m3").
  addE("friend").from("u1").to("u2").
  addE("friend").from("u1").to("u3").
  addE("like").from("u2").to("m1").
  addE("like").from("u2").to("m2").
  addE("like").from("u3").to("m2").
  addE("like").from("u3").to("m3")

如何向特定用户的朋友询问他们喜欢多少部普通电影的顺序降序?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-31 21:59:28

为了使结果更有趣,我在图中添加了更多的边。

代码语言:javascript
复制
  g.addV("user").property("name", "alice").as("u1").
  addV("user").property("name", "jen").as("u2").
  addV("user").property("name", "dave").as("u3").
  addV("movie").property("name", "the wild bunch").as("m1").
  addV("movie").property("name", "young guns").as("m2").
  addV("movie").property("name", "unforgiven").as("m3").
  addE("friend").from("u1").to("u2").
  addE("friend").from("u1").to("u3").
  addE("friend").from("u2").to("u3").
  addE("friend").from("u2").to("u1").
  addE("like").from("u2").to("m1").
  addE("like").from("u2").to("m2").
  addE("like").from("u3").to("m2").
  addE("like").from("u3").to("m3").
  addE("like").from("u1").to("m1").
  addE("like").from("u1").to("m2")  

例如,我们可以找到Jen,收集Jen喜欢的电影,然后找到Jen的朋友,统计他们每个人都喜欢的电影的数量。

代码语言:javascript
复制
gremlin> g.V().
......1>   has('name','jen').as('jen').
......2>   sideEffect(out('like').store('movies')).
......3>   out('friend').
......4>   group().
......5>     by("name").
......6>     by(out('like').where(within('movies')).count())    


==>[dave:1,alice:2]    

你也可以更进一步,将结果按升序或降序排列。

代码语言:javascript
复制
gremlin> g.V().
......1>   has('name','jen').as('jen').
......2>   sideEffect(out('like').store('movies')).
......3>   out('friend').
......4>   group().
......5>     by("name").
......6>     by(out('like').where(within('movies')).count()).
......7>     order(local).
......8>       by(values,desc)  

==>[alice:2,dave:1]     

更新了以添加一个示例,其中其他信息是结果的一部分。

代码语言:javascript
复制
gremlin> g.V().
......1>   has('name','jen').as('jen').
......2>   sideEffect(out('like').store('movies')).
......3>   out('friend').
......4>   group().
......5>     by(valueMap(true)).
......6>     by(out('like').where(within('movies')).count()).
......7>     order(local).
......8>     by(values,asc)    

==>[[id:61353,label:user,name:[dave]]:1,[id:61349,label:user,name:[alice]]:2] 

从结果中省略计数

代码语言:javascript
复制
gremlin> g.V().
......1>   has('name','jen').as('jen').
......2>   sideEffect(out('like').store('movies')).
......3>   out('friend').
......4>   group().
......5>     by(valueMap(true)).
......6>     by(out('like').where(within('movies')).count()).
......7>     order(local).
......8>     by(values,asc).
......9>   select(keys)  

==>[[id:61353,label:user,name:[dave]],[id:61349,label:user,name:[alice]]]  
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70932437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档