2015-11-05 2 views
1

Я знаю, что было задано много подобных вопросов. Но похоже, что ответы не могут решить мою проблему. У меня очень большой график, около 1 миллиона узлов и 3 миллиона отношений. Когда я пытаюсь удалить их, используя следующие инструкции:Как удалить все узлы и все отношения в neo4j

MATCH (n) 
OPTIONAL MATCH (n)-[r]-() 
DELETE n,r 

После этого сервер разбился. ОК, я добавил ПРЕДЕЛ:

MATCH (n) 
OPTIONAL MATCH (n)-[r]-() 
WITH n,r LIMIT 1000000 
DELETE n,r 

Сервер не будет врезаться, но исключение проявляется:

org.neo4j.kernel.api.exceptions.TransactionFailureException: Node record Node[1578965,used=false,rel=662269,prop=-1,labels=Inline(0x0:[]),light] still has relationships 

Я думаю LIMIT +1000000 остановит мое удаление на отношения. Затем он обращается к удалению узла. которые вызывают это исключение. Я прав? потому что я не совсем понимаю процесс LIMIT 1000000.

Итак, что мне делать? Я не хочу удалять файл базы данных каждый раз, когда мне нужно очистить свой график. Установка большего объема памяти может помочь, но размер моего графика также может стать больше. Крушение произойдет в конечном итоге.


Спасибо за весь ваш ответ. Я попробовал оба метода. Исключение «Neo.DatabaseError.Statement.ExecutionFailure» будет отображаться во второй раз я запускаю заявление:

MATCH (n) 
WITH n LIMIT 1000000 
DETACH DELETE n 

или это заявление:

MATCH()-[r]-() 
WITH r 
LIMIT 1000000 
DELETE r 

сдаюсь. Думаю, мне лучше удалить все файлы в моей папке. Это простой способ для меня.

+0

Вы пробовали уменьшить размер партии, т. Е. Предел? – Luanne

ответ

3

Что вы можете сделать, это сначала удалить отношения, а затем узлы.

отношения

MATCH()-[r]-() 
WITH r 
LIMIT 1000000 
DELETE r 

узлы

MATCH (n) 
WITH n 
LIMIT 1000000 
DELETE n 
5

На Neo4j 2.3 вы можете использовать

MATCH (n) 
WITH n LIMIT 1000000 
DETACH DELETE n 

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

MATCH (n) 
WITH n LIMIT 1000000 
OPTIONAL MATCH (n)-[r]-() 
DELETE n,r 
Смежные вопросы