[英]How could I write a traversal query in neo4j (gremlin/cypher either one)?
[英]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中討論類似的查詢。
如果您願意,也可以使用Gremlin , Neo4j-Traversers或通過getRelationships
手動遍歷。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.