簡體   English   中英

在Cypher / Neo4J中找到節點之間連接的最有效方法?

[英]Most efficient way to find connections between the nodes in Cypher / Neo4J?

我需要找到連接到主用戶節點的所有節點(帶有“標簽”標簽)之間的連接。

到目前為止,我想出了一個這樣的解決方案,但對我來說似乎有點低效,因為我先遍歷圖兩次,先找到c1,然后找到c2。

有人有更好的主意嗎?

MATCH (u:User{uid:"777"}), (c1:Hashtag), (c2:Hashtag), 
c1-[:BY]->u, c2-[:BY]->u, c1-[rel:TO]->c2 RETURN rel,c1,c2;

(我正在使用Neo4J / Cypher 2.0)

試試看,試一下,讓我知道輸出。

MATCH (u:User {uid:"777"})
WITH u
MATCH u<-[:BY]-(c1:Hashtag)-[rel:TO]-(c2:Hashtag)--(u)
RETURN rel, c1, c2

基本上,這里的想法如下:

  1. 首先匹配用戶節點
  2. 使用它來匹配所有“標簽”節點
  3. 使用它來匹配連接到先前“標簽”節點的所有“標簽”節點
  4. 返回“ rel”,即從“標簽”節點到連接到用戶777的“標簽”節點的所有關系

暫無
暫無

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

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