2014-10-06 30 views
2

我試圖讓所有的關係連接到一個給定的節點,也有一個名爲'名稱'的屬性。這是我的密碼:簡單的密碼查詢不合理地慢 - 我做錯了什麼?

MATCH (starting { number:'123' })<-[r]-() WHERE HAS(r.name) RETURN r 

這是無法想象的慢!即使只有很少的返回值,也需要neo4j年齡來計算,並且沒有太多關係連接到節點(最多1到10個關係)。

我在這裏做錯了什麼? 其他cyphers工作正常。

謝謝!

回答

3

如果你還沒有告訴Neo足夠的關於你的圖形結構的信息,那麼這個節點上的關係數量可能就不那麼重要了。

首先使用標籤,然後使用索引。以下將在number上使用標籤YourLabel

CREATE INDEX ON :YourLabel(number) 

然後點擊索引開始查詢,並在您的關係中使用一個類型。

MATCH (:YourLabel{number:'123'})<-[r:RELATIONSHIP_TYPE]-() 
WHERE HAS (r.name) 
RETURN r 

現在不是掃描每個節點的數字屬性值爲123,它只讀取一個索引。

要使用標籤,創造您的節點是這樣的(將被添加到索引):

CREATE (s1:YourLabel{number:"1"}) 
+0

我的錯誤是用「(起始自{數:‘123’})」的一部分,將其更改爲「(:YourLabel {number:'123'})」,正如你建議解決問題一樣!謝謝 – 2014-10-06 11:56:39

相關問題