2013-10-29 70 views
3

我們公司正在評估Neo4J作爲我們社交網絡的選擇數據庫。我們的主要要求是高性能的社交活動流(讀取日食寫入)。在對我們的數據進行建模時,我們獨立設計了稱爲Graphity模型的模型,該模型可以很好地擴展,但受到Neo最大關係類型(約32,700)的限制。社交活動流的最佳模式?

有沒有辦法增加關係類型的數量以便在規模上使用Graphity?

http://docs.neo4j.org/chunked/milestone/cypher-cookbook-graphity.html http://docs.neo4j.org/chunked/milestone/cypher-cookbook-newsfeed.html

+0

+1 @Greg感謝您的鏈接,我只是在模擬活動流的同一旅程中,祝你好運,並讓我知道如果你發現一些有趣的東西 –

回答

0

如果關係類型的數量是一個問題,請記住,Neo4j的支持上的關係的性質。

所以不是MATCH p=me-[:jane_knows*]->friend ....你chould已經模仿的東西,如:

MATCH me-[jk:who_knows]->friend WHERE jk.who = 'jane' 

這能有效地彌補大家x_knows關係到一個關係類型與屬性。我不確定這是否會產生與您的用例相同的語義或性能優勢,但它是解決您的問題的可能方案。

+0

非常有趣。我沒有想到在邊緣使用財產。乍一看,它聽起來像將查詢負擔切換到Lucene,因爲每個關係查詢都成爲Lucene索引命中。我會嘗試一下並報告。謝謝! –