Попытка пакетного удаления дублирующих узлов с помощью apoc.periodic.iterate.Сервер не работает - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь пакетно удалить дубликаты узлов.Тем не менее, я получаю сообщение об ошибке Connection to server lost. Reconnecting... Сервер, кажется, отключается, а затем снова подключается.Я пытаюсь дедуплицировать все типы узлов Post с одинаковым общим свойством unique_post_id.Любые идеи о том, как сделать эту дедупликацию?

call apoc.periodic.iterate('
MATCH (p:Post)
WITH p.unique_post_id as id, collect(p) AS nodes 
WHERE size(nodes) >  1
FOREACH (p in tail(nodes) | DETACH DELETE p) ','', {batchSize:100000})

1 Ответ

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

Вы используете процедуру неправильно.Ваш первый аргумент apoc.periodic.iterate должен быть запросом Cypher, который возвращает поток удаляемых узлов, а вторым аргументом должен быть запрос на удаление этих узлов.

Попробуйте это:

call apoc.periodic.iterate(
  'MATCH (p:Post)
   WITH p.unique_post_id as id, collect(p) AS nodes 
   WHERE size(nodes) > 1
   UNWIND tail(nodes) AS node
   RETURN node',
  'DETACH DELETE node',
  {batchSize:100000, iterateList:true})

Если это по-прежнему не удается, попробуйте уменьшить значение batchSize.

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