Загружать узлы и создавать отношения из одного CSV-файла - PullRequest
0 голосов
/ 15 апреля 2019

Мне нужно загрузить CSV-файл с идентификатором (cui) и названием болезни, некоторые идентификаторы повторяются, но у них немного другое имя. Я хотел бы создать узлы с уникальным идентификатором и узлами для всех других имен, которые немного отличаются. узлы с альтернативным именем будут иметь отношение [:HAS_ALTERNATIVE_NAME] с начальными узлами.

У меня есть запрос, который добавляет альтернативные имена в свойство узла, на этот раз я хотел бы нормализовать проблему, создав узел для каждого альтернативного имени.

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM 'file:///Concepts_50000.csv' AS line 
FIELDTERMINATOR '\t'
MERGE (d:Disease{id: line.CUI})
ON CREATE SET 
    d.prefered_name = line.name,
    d.alternative_name = line.name
ON MATCH SET
    d.alternative_name = d.alternative_name+', '+line.name;

В конце я хотел бы иметь что-то вроде этой ситуации, одна болезнь, имеющая альтернативные названия узлов.

Ideal result of the querry

1 Ответ

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

Это может делать то, что вы хотите:

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM 'file:///input.csv' AS line 
FIELDTERMINATOR '\t'
MERGE (d:Disease {id: line.CUI})
MERGE (n:DiseaseName {name: line.name})
MERGE (d)-[: HAS_ALTERNATIVE_NAME]->(n)

[ОБНОВЛЕНО]

Для повышения производительности убедитесь, что у вас есть индексы on:

  • :Disease(id)
  • :DiseaseName(name)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...