簡體   English   中英

Neo4j 1.9:替代Neo4j 2.0的UNION來組合結果集嗎?

[英]Neo4j 1.9: alternative to Neo4j 2.0's UNION to combine result sets?

我正在嘗試為我正在處理的這種社交網絡類型的應用程序編寫Cypher查詢。 試想一下Facebook類型的應用程序,其中有跟隨其他用戶的用戶,這些用戶可以撰寫帖子並喜歡/分享它們。

假設用戶Alice關注了幾個人(主題)。

查詢應該返回的三件事:

  1. 愛麗絲的主題創建的帖子
  2. 愛麗絲(Alice)的主題喜歡的帖子,喜歡數量> = 5
  3. 愛麗絲(Alice)的主題分享的帖子,並且分享的數量> = 5

我可以分別編寫三個查詢:

start alice=node(35500)
match (alice)-[:FOLLOWS]->()-[:SHARES]->(post)
where not((post)-[:ORIGINAL]->())
return post;

start alice=node(35500)
match (alice)-[:FOLLOWS]->()-[:LIKES]->(post)
with post, count(post) as likes
where likes >= 5
return post;

start alice=node(35500)
match (alice)-[:FOLLOWS]->()-[:SHARES]->(post)-[repost:ORIGINAL]->()
with post, count(repost) as reposts
where reposts >= 5
return post;

(轉發與原始帖子具有:ORIGINAL關系)

目前,我正在分別進行三個查詢,在客戶端中組合,排序和分頁結果。 我真正想要的是一個查詢,我可以在其中使用SKIP和LIMIT來分頁結果。

據我所知,Neo4j 1.9(我正在使用的(穩定)版本)不支持UNION。 升級到不穩定的Neo4j 2.0並不是真正的選擇。

沒有Neo4j的UNION,有沒有辦法做到這一點?

謝謝!

我認為在Neo4j 1.9中,在這種情況下,您應該移至服務器插件或Java代碼,Cypher在2.0之前並不真正支持此功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM