Поиск пути между двумя узлами в Neo4j через Cypher идет медленно - PullRequest
0 голосов
/ 03 апреля 2019

Я намереваюсь найти путь между двумя узлами:

MATCH (x:Column {name:'colA', schema:'a.b'})-[cd:CD*1..]->(y:Column {name:'colB', schema:'c.d'})
RETURN x,y;`

и объяснение поясняется ниже:

image

После выполнения вышеупомянутого шифра, он выглядит как застрявший навсегда, ничего не возвращая. Я думаю, что виновником является фаза VarLengthExpand, версия Neo4j - enterprise-3.4.0, какие-либо предложения? Благодаря.

Ответы [ 2 ]

1 голос
/ 03 апреля 2019

Прежде всего, обновление.Вы используете релиз .0, и это, как правило, самые ошибочные версии релизов (кроме альф).По крайней мере, перейдите к последнему выпуску патча для интересующей вас минорной версии (так что в вашем случае, если вы хотите 3.4.x, получите последний патч вдоль линии 3.4.x).

Во-вторых, поскольку оба этих узла могут быть просмотрены с помощью индекса, и, поскольку кажется, что вы ищете только один путь, а не все возможные пути, вы можете использовать shorttestPath () после сопоставления на обоих узлах.Дайте этому попытку.

0 голосов
/ 09 апреля 2019
MATCH (x:Column {name:'colA', schema:'a.b'}), (y:Column {name:'colB', schema:'c.d'})
MATCH path = (x)-[:CD]->(y)
RETURN path
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...