2013-04-15 24 views
1

我在Neo4j中有多個關係的節點,如下圖所示,國家,地區等。但是我想爲只有關係跟隨的節點計算pagerank /節點排名。是否有任何教程使用Gremlin來做到這一點。使用gremlin查找節點排名

17838 - Follows->1743 
17838 - Country-> 2 
.... 

PS:請分享任何好的教程小鬼

於是我想出了這一點:

gremlin> m = [:].withDefault{1} 
gremlin>g.V.transform{rank=m[it.name];neighbors = it.out('Follows').toList();degree = neighbors.size();neighbors.each{m[it.name]=m[it.name]+(rank/degree);}neighbors;}.scatter.range(0,10000).loop(3){true}.iterate() 

這讓我空指針異常???

+0

我沒有確切的答案,但也許這個博客激勵你:http://markorodriguez.com/(由主要貢獻者之一Gremlin) – castarco

回答

1

請考慮使用Cypher。一個好的起點可能是以下查詢:

START n=node(*) 
MATCH n-[:FOLLOWS]-m 
RETURN n,m 
+1

這可以使用gremlin來完成:gVoutE('Follows')。outV.map 但是這並沒有幫助給節點排名 – Harshit

2

您可以這樣做。

g.V.out('follows').groupCount(m).loop(2){it.loops < 5} 

好小鬼的教程在這裏:

http://gremlin.tinkerpop.com 
http://gremlindocs.com 
+0

Marko,我讀過你的博客。保持良好的工作 。我從他們身上學到了很多東西。 – Harshit

+0

我無法理解上面的代碼真正理解,所有我得到這個命令後,我的終端上打印的頂點數。我認爲我需要深入研究gremlin – Harshit

+0

m.sort {it.value} 我得到輸出爲v [17901] = 104434,這些是特徵向量值?而且價值如此之高? – Harshit