使用 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 Console中对您的数据集执行这些密码查询,也可以在 neo4j-shell 中,通过 Cypher-Rest-Plugin 通过Spring Data Graph远程执行这些查询。
还有一个截屏视频讨论了 cypher 中的类似查询。
如果您愿意,您还可以使用Gremlin、Neo4j-Traversers或手动遍历。getRelationships