Определите соединения второго уровня в масштабе - PullRequest
0 голосов
/ 09 января 2019

Я бы хотел определить соединения второго уровня на графике в масштабе, аналогично как найти 2-й уровень соединений в neo4j?

Определить соединения второго уровня в Neo просто, как в принятом ответе на эту тему:

MATCH (n)-[:CALLED]->()<-[:CALLED]-(result)
WHERE n.id = 300
RETURN result

Это прекрасно работает с моим набором данных, но я бы хотел более широкое представление. По сути, я хочу удалить WHERE в приведенном выше запросе, например так:

MATCH (n)-[:CALLED]->()<-[:CALLED]-(result)
RETURN n, result

Используя рабочий стол Neo4j, я получаю ошибки OOM при выполнении этого второго запроса. Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 10 января 2019

Запросы по всему графику могут быть дорогими. Если есть какой-либо способ, вы можете сузить работу, которая может помочь, например, если узлы должны быть только с определенными метками.

Вы также можете добавить предикат для идентификаторов возвращаемых узлов, чтобы не получать зеркальные результаты (те же узлы, но поменять местами переменную, с которой они связаны):

MATCH (n)-[:CALLED]->()<-[:CALLED]-(result)
WHERE id(n) < id(result)
RETURN n, result

Вы также можете проверить, сколько памяти доступно на вашем компьютере и сколько сконфигурировано для использования в куче Neo4j. См. документацию по конфигурации памяти .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...