我想在Neo4j中構建一個包含七種不同類型的節點的結構,共約4-5000個節點,並且它們之間有40000個關係。我目前使用的密碼是我首先用代碼創建節點:在neo4j中同時創建節點和關係
Create (node1:type {name:'example1', type:'example2'})
約4000個具有唯一節點的示例。
表述爲這樣然後我有關係:這種獨特的關係
Create
(node1)-[:r]-(node51),
(node2)-[:r]-(node5),
(node3)-[:r]-(node2);
大約40000。
隨着規模較小的圖形,這根本就沒有任何問題。但是用這個,執行查詢從不停止加載。
關於如何使這種類型的查詢工作的任何建議?或者我應該做什麼呢?
編輯。我試圖構建的是一個產品的大圖,它的發佈,發佈版本,功能等與電影圖形示例構建的方式相同。
該產品共有約6個版本,每個版本都有大約20個發行版本。總共有371個功能和371個功能,還有438個功能轉換。一次發佈版本(總共120次),然後每個版本大約有2-300個特色版本。這些Featureversions被映射到它的特性,這些特性對db中的一切都有依賴性。我也involed HW相關性,如可能的硬件上運行這些功能,使用暗號代碼等設備上,以便basicaly IM版本,例如:
Create (Product1:Product {name:'ABC', type:'Product'})
Create (Release1:Release {name:'12A', type:'Release'})
Create (Release2:Release {name:'13A, type:'release'})
Create (ReleaseVersion1:ReleaseVersion {name:'12.0.1, type:'ReleaseVersion'})
Create (ReleaseVersion2:ReleaseVersion {name:'12.0.2, type:'ReleaseVersion'})
和低於我已經構建起來使用
Create (Product1)<-[:Is_Version_Of]-(Release1),
(Product1)<-[:Is_Version_Of]-(Release2),
(Release2)<-[:Is_Version_Of]-(ReleaseVersion21),
所有到功能的方式,然後我還添加了它們之間的相關性,如:
(Feature1)-[:Requires]->(Feature239),
(Feature239)-[:Requires]->(Feature51);
因爲我已經找到許多不同的Excel表è所有這些信息tc,我這樣做了代碼,以爲我可以把它放在一個大規模密碼查詢中,並在本地主機上的/瀏覽器上運行它。只要我一次不使用超過4-5000個查詢,它就非常好用。然後它最多在5-10秒內創建完整的數據庫,但現在當我試圖在同一時間運行45000個查詢時,它已經運行了將近24小時,並且仍在加載並且正在執行查詢。 ..「。我想知道是否可以改進所需的時間,數據庫最終是否會創建?或者我可以做一些更聰明的索引或其他東西來改善性能?因爲順便說一句,我的密碼是現在寫的,我不能將它分成幾部分,因爲數據庫中的所有內容都與產品有某種連接。我是否需要重寫代碼或者是否有任何順暢的方法?
謝謝!這應該被接受爲答案 – troig
我們不需要括號嗎? (a) - [:BLAH] - >(b) – orestiss
是的。答案是在2014年寫的,當你不需要它們的時候。 – FrobberOfBits