В настоящее время я пытаюсь этот запрос на Neo4j 2.2.2Neo4j не используя индексы
Во время этого поста, мы не маркированы любые узлы, но, как мы недавно повышен с Neo4j 1.x. поэтому у нас нет возможности использовать предложение USING.
Я пытаюсь использовать индексы, но заканчивая полным сканированием таблицы.
START pfComp=node:Company('id:2403226') , ptComp=node:Company('id:1946633')
OPTIONAL MATCH
(pfComp)<-[c:CHILD_OF*]-(cfComp)
WITH collect(id(cfComp)) as cfCompIds, ptComp, pfComp
OPTIONAL MATCH
(ptComp)<-[c2:CHILD_OF*]-(ctComp)
WITH cfCompIds, collect(id(ctComp)) AS ctCompIds
MATCH
(fComp) -[fR:PARTICIPATES_IN]-> cdeals <-[tR:PARTICIPATES_IN]-(tComp)
WHERE
(fComp.id = 2403226 or id(fComp) in cfCompIds) and
(tComp.id = 1946633 or id(tComp) in ctCompIds)
RETURN fComp, tComp, cdeals
Cypher версия: CYPHER 2.2, планировщик: СТОИМОСТЬ. 1305292 всего дБ хитов в 79128 мс.
Любая помощь по этому поводу будет высоко оценена.
Ниже приведен полный вывод команды профиля.
Начало часть запроса выполняет быстро:
profile START pfComp=node:Company('id:2403226') , ptComp=node:Company('id:1946633')
OPTIONAL MATCH
(pfComp)<-[c:CHILD_OF*]-(cfComp)
WITH collect(id(cfComp)) as cfCompIds, ptComp, pfComp
OPTIONAL MATCH
(ptComp)<-[c2:CHILD_OF*]-(ctComp)
return cfCompIds, collect(id(ctComp)) AS ctCompIds
Cypher версия: CYPHER 2.2, планировщик: стоимость. Всего 836 хитов в секунду - 582 мс.
Возможно, у вас есть опечатка здесь? Вы используете идентификаторы, которые вы еще не инициализировали раньше, поэтому он должен выполнить очень плохую полную сцену и развернуть: «ОПЦИОНАЛЬНЫЙ МАТЧ (ptComp) <- [c2: CHILD_OF *] - (ctComp)' –
, здесь они имеют непоследовательные способы определения их поиск, для поиска свойств вы пропустите ярлык, а идентификатор поиска id() с поиском прокрутки я разделил его на две части объединения. –
Michael Hunger: часть запроса попрошайничает: профиль START pfComp = node: Company ('id: 2403226'), ptComp = node: Company ('id: 1946633') ДОПОЛНИТЕЛЬНАЯ МАТЧА (pfComp) <- [c: CHILD_OF *] - (cfComp) WITH collect (id (cfComp)) как cfCompIds, ptComp, pfComp ДОПОЛНИТЕЛЬНАЯ МАТЧА (ptComp) <- [c2: CHILD_OF *] - (ctComp) return cfCompIds, collect (id (ctC omp)) AS ctCompIds Результат: Cypher версия: CYPHER 2.2, планировщик: СТОИМОСТЬ. Всего 836 хитов в секунду - 582 мс. –