簡體   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