Объединить дублирующиеся узлы и отношения сохранения с узлами, к которым были подключены эти дубликаты - PullRequest
0 голосов
/ 13 мая 2019

Мой вопрос касается того, как объединить несколько дублирующих узлов.

Каждый узел, как дубликат, соединен с другими узлами с НАПРАВЛЕННЫМ ребром.

Что я хотел бы сделать, это объединить эти дублирующиеся узлы, основываясь на двух идентичных свойствах (свойства entity_type и name, где entity_type=entity_type и name=name затем объединить эти два узла)и чтобы также иметь возможность сохранять отношения, которые эти узлы предварительно объединяли с другими узлами на новом узле.Таким образом, новый объединенный узел может иметь 2+ отношения с другими узлами, которые имелись у узлов, с которыми он был объединен.

У кого-нибудь есть советы по структурированию этого запроса?Большое спасибо.

1 Ответ

0 голосов
/ 13 мая 2019

Вы должны использовать Библиотека APOC , чтобы сделать это. APOC имеет процедуру apoc.refactor.mergeNodes, которая может объединить несколько дублирующих узлов в один узел.

Все отношения также объединены в этот узел.

Вы можете использовать следующий запрос для структурирования своего запроса:

MATCH (p:Entity)
WITH p.name AS name, p.entity_type AS type, collect(p) as nodes
CALL apoc.refactor.mergeNodes(nodes, {properties: {`.*`: 'discard'}}) YIELD node
RETURN count(node) AS new_node_count
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...