0
1000000 x ({prop:'a'})
1000000 x ({prop:'b'})
1000000 x ({prop:'c'})
NODE SET =〜3MegaNodes
觀察值:prop不是排他性屬性附加傷害。
關係
1000 x [:TYPEA {date:20150301} ]
1000 x [:TYPEA {date:20150228} ]
1000 x [:TYPEA {date:20150227} ]
1000 x [:TYPEA {date:........} ]
1000 x [:TYPEA {date:19000101} ]
1000 x [:TYPEB {date:20150301} ]
1000 x [:TYPEB {date:20150228} ]
1000 x [:TYPEB {date:20150227} ]
1000 x [:TYPEB {date:........} ]
1000 x [:TYPEB {date:19000101} ]
TYPEA =42062天X 1個000 RELS
TYPEA =〜42 000 000
TYPEB =〜42 000 000
關係集 =〜84個MegaRels
我想匹配的模式:
MATCH (n1 {prop:'a'}) -[ r1:TYPEA {date:200} ]-> (n2 {prop:'b'})
RETURN n2;
通過索引提高
我neo4j.properties:
relationship_auto_indexing=true
relationship_keys_indexable=date
Cypher支架查詢:
START
r1 = relationship:relationship_auto_index('date:200')
MATCH (n1 {prop:'a'}) -[r1:TYPEA]-> (n2 {prop:'b'})
RETURN n2;
:)工作正常!
現在,我想匹配的模式:
MATCH
(n1 {prop:'a'})
-[ r1:TYPEA {date:200} ]->
(n2 {prop:'b'})
-[ r2:TYPEA {date:200} ]->
(n3 {prop:'c'})
RETURN n2, n3;
然後我嘗試:
START
r1 = relationship:relationship_auto_index('date:200'),
r2 = relationship:relationship_auto_index('date:200')
MATCH (n1 {prop:'a'}) -[r1:TYPEA]-> (n2 {prop:'b'}) -[r2:TYPEA]-> (n3 {prop:'c'})
RETURN DISTINCT n2, n3;
:(運行慢
因爲發生笛卡爾乘積產許多中間結果。1000^2.
一方面,不可能在查詢中多次使用相同的標識符。
另一方面,標籤索引(架構)不適用於關係。
有希望嗎? (版本:Neo4j-community-2.2.0)
當在查詢密碼中不使用子句開始時,關係舊式索引有什麼優點?
感謝名單