2016-09-28 80 views
0

我正在使用Neo4j 3.0.5。Neo4j:加快通過屬性不等式的關係匹配

我的查詢如下所示:

MATCH (cd:ConnectionDay)-[c:Connection]->() 
WHERE id(cd)= { id } AND c.departure <= { departure } 
RETURN c 

在我的圖表,Connection關係的數量是非常高的,我正在尋找一種方式來加快檢索。有沒有辦法爲出發物品創建索引?

無論如何,我使用嵌入式Java API,所以不使用Cypher的解決方案也可以。

+0

在我看來,有必要使屬性在單獨的節點中被索引。 –

+0

@stdob你認爲,一個附加節點+一個附加關係的開銷是否值得呢? –

+0

我認爲這不是問題。本着圖論的精神。 –

回答

0

另外:不建議您使用本地neo4j ID來查找節點,因爲節點被刪除後,其本機ID可以重複使用。添加自己的屬性以存儲您知道的永久唯一的ID是更安全的。

Neo4j目前不支持索引關係屬性。如果你想使用索引,你可以改變你的數據模型來將你的Connection關係「化」爲節點。例如,您的新數據模型看起來像這樣:

(cd:ConnectionDay)-[:CONNECTS_TO]->(c:Connection {departure: 123})-[]->()