NODESNeo4j Наследство связь авто-индекс Slow в шифровальщика запросе
1000000 x ({prop:'a'})
1000000 x ({prop:'b'})
1000000 x ({prop:'c'})
УЗЕЛ SET = ~ 3MegaNodes
OBS .: проп не является эксклюзивным atribute.
ВЗАИМООТНОШЕНИЯ
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 дней х 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
шифровальщиком запрос:
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;
:(Run Slow
Поскольку декартово произведение происходит производство много промежуточных результатов. 1000^2.
С одной стороны, невозможно использовать один и тот же идентификатор более одного раза в запросе.
С другой стороны, индекс ярлыков (схема) не применяется к отношениям.
Есть надежда? (Релиз: Neo4j-community-2.2.0)
Есть ли какое-либо преимущество в отношении устаревшего индексации отношений, когда не используется начало предложения в запросе cypher?
Thanx