2017-03-01 78 views
1

我試圖對大型知識圖建模。 (使用v3.1.1)。Neo4J通過計數關係排序非常緩慢

我的實際圖形只包含兩種類型的節點(Topic,Properties)和單一類型的關係(HAS_PROPERTIES)。

節點數約爲85M(47M :Topic,其餘節點數爲:Properties)。

我想要獲得最多的連接節點:主題爲此。我使用下面的查詢:

MATCH (n:Topic)-[r]-() 
RETURN n, count(DISTINCT r) AS num 
ORDER BY num 

該查詢或我嘗試執行(不過濾的結果)使用count(關係)和order by計數(關係)幾乎所有的查詢始終是極其緩慢:這些查詢需要超過10分鐘,仍然沒有迴應。

我是否缺少索引或是更好的語法?

我有可能在合理的時間內執行此查詢嗎?

+0

你的配置(堆/頁面緩存看起來像什麼)你有多少內存,什麼樣的磁盤? –

+2

':屬性'節點聽起來很可怕,在屬性圖中你存儲節點的屬性:) –

+2

如果你想在瀏覽器或shell中運行它,你還應該限制你的結果,否則你會得到返回的47M記錄,您的瀏覽器或終端(或者甚至每個中的預處理) –

回答

2

使用此:

MATCH (n:Topic) 
RETURN n, size((n)--()) AS num 
ORDER BY num DESC 
LIMIT 100 

讀取直接從一個節點的程度。

+1

自4分鐘後仍然緩慢且沒有響應:/ – user638564

+1

仍需要讀取47M節點並對其進行分類。 –

+0

你是對的,謝謝 – user638564