2016-04-14 41 views
1

我的查詢是: match (n :l1)-[r]-(n2 :l2) where n.id=10 OR n2.id=5 return n,n2,r如何通過`OR`提高密碼查詢的性能?

我預計這將返回所有包含nn2並具有給定的標籤的元素。

我有兩個n :li(id)n2 :l2(id),但在配置文件中它說,它是一種製作NodeByLabelScan數千分貝命中......爲什麼指數?

AND相同的查詢確實使用索引。

編輯:@StefanArmbruster解決方案使用UNION執行方式更好,因爲它單獨執行每個查詢,然後合併結果而不碰到數據庫。數以百萬計分貝命中成千上萬:)

+0

其中的Neo4j的版本? –

+0

@StefanArmbruster我正在運行2.3 –

回答

1

我想這是使用UNION一個很好的候選人:

MATCH (n:l1{id:10})-[r]-(n2) 
RETURN n, r, n2 
UNION 
MATCH (n:l2{id:5})-[r]-(n2) 
RETURN n, r, n2 
+0

謝謝,我會嘗試並報告回 –