繁体   English   中英

我怎么能在neo4j中写这个查询?

[英]How could I write this queries in neo4j?

我对neo4j和图形数据库都很新。 我是一个应用程序的原型,我不知道我应该如何编写这些查询

我有这个域名:

用户餐厅评论TypeOfFood

因此,Restarurant有一个或多个TypeOfFood,用户留下关于餐馆的评论。 用户有一些首选的食物,与餐馆出售的TypeOfFood相匹配。 此外,用户通常与朋友关系彼此相关。

我正在尝试编写的一些查询:

  • 给我所有的朋友评价的餐厅用3颗或更多星星做成我喜欢的食物(不包括那些我已经评论过的餐馆)

  • 建议我认识的朋友(我想这应该是“所有的朋友都是朋友的朋友,但还不是我的朋友,订购的东西)

使用Neo4j的Cypher查询语言,您可以编写如下查询:

选择排名前20位的最佳餐厅,按星级和评论数量排序

start user=(users,name,'Nico')
match user-[:FRIEND]->friend-[r,:RATED]->restaurant-[:SERVES]->food,
      user-[:LIKES]->food,user-[:RATED]->rated_by_me
where r.stars > 3
return restaurant.name, avg(r.stars), count(*)
order by avg(r.stars) desc, count(*) desc 
limit 20

朋友的朋友

start user=(users,name,'Nico')
match user-[:FRIEND]->friend->[:FRIEND]->foaf
return foaf, foaf.name

您可以在数据集的Neo4j Webadmin控制台中执行这些cypher查询,也可以在neo4j-shell中通过Spring Data Graph远程通过Cypher-Rest-Plugin执行这些查询。

还有一个截屏视频在cypher中讨论类似的查询。

如果您愿意,也可以使用GremlinNeo4j-Traversers或通过getRelationships手动遍历。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM