Создайте запрос, который возвращает только подмножество всего графа в Cypher - PullRequest
0 голосов
/ 16 января 2020

У меня есть набор данных исторических людей, которые были связаны с событиями (например, крещениями или браками) или источниками (например, завещаниями), которые, в свою очередь, связаны с другими людьми и конкретной Церковью, в которой произошло событие. Я могу создать обзор непосредственной сети данного человека с помощью этого запроса:

MATCH (p:person {ID: 'TRE_person_0281'})-[r*1..**2**]-(n) RETURN p, r, n

Это возвращает следующий результат: Query result

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

MATCH (p:person {ID: 'TRE_person_0281'})-[r*1..**3**]-(n) RETURN p, r, n

Поэтому мой вопрос заключается в том, как построить запрос, который показывает узлы, связанные с события, с которыми были связаны люди, которые были напрямую связаны с событиями, с которыми был связан человек 'TRE_person_0281'.

1 Ответ

0 голосов
/ 16 января 2020

Здесь показана одна из прелестей использования графической БД с Cypher.

Ваша фраза "узлы , связанные с событиями , к которым люди были подключены, которые были напрямую связаны с событиями , с которыми person 'TRE_person_0281' был легко преобразован в эквивалентный запрос Cypher:

MATCH p = ()--(:event)--(:person)--(:event)--(:person {ID: 'TRE_person_0281'})
RETURN p
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...