我有以下兩個節點類型:獲取不具有一定的關係(CYPHER/Neo4j的)節點
c:City {name: 'blah'}
s:Course {title: 'whatever', city: 'New York'}
展望創建此:
(s)-[:offered_in]->(c)
我試圖讓所有不與城市聯繫並創建與城市的關係的課程(如果不存在,則創建城市)。然而,問題是我的數據集大約有500萬個節點,而且我的任何查詢都超時(除非我的增量爲10k)。
......有人有什麼建議嗎?
編輯:
這裏是我現在正在運行的任務查詢(即在10K塊做(出數以百萬計),因爲它需要幾分鐘的時間,因爲它是沒有按是否創建城市。 「T存在):
match (j:Job)
where not has(j.merged) and has(j.city)
WITH j
LIMIT 10000
MERGE (c:City {name: j.city})
WITH j, c
MERGE (j)-[:in]->(c)
SET j.merged = 1
return count(j)
(現在不知道過濾掉已經匹配的那些一個好辦法,所以試圖做到這一點通過自定義標記是‘合併’我已經有一個屬性index on)
你能分享你目前正在嘗試的嗎? – JohnMark13 2014-09-04 17:22:04
我不認爲這可以在沒有更多上下文的情況下得到回答(並且將您的問題與您的更新相匹配,我假設工作==課程和== offered_in)。您是使用現有數據進行操作還是這是批量導入?你能告訴我們關於你的系統設置的一些信息嗎?而不是'合併',你可以使用WHERE NOT(j) - [:in] - >()。 – JohnMark13 2014-09-04 19:22:52
您是否通過瀏覽器界面看到超時? – 2014-09-04 21:40:41