Я использовал инструмент импорта для чтения в ~ 1 миллион узлов. Теперь настало время установить отношения. (К сожалению, похоже, что вы должны иметь явно заданные отношения в csv, если вы хотите использовать инструмент импорта, так что это не может быть и речи.)Ошибка «Java heap space» с neo4j - при сбое выделения памяти
Первое, что я сделал, это поместить индекс на узлы ,
Далее, я написал, что мне интересно, моя проблема - даже с индексом, это утверждение может вызвать слишком много декартовы продукции ?:
USING PERIODIC COMMIT 500
LOAD CSV WITH HEADERS FROM
'file:///home/monica/...relationship.csv' AS line
MATCH (p1:Player {player_id: line.player1_id}), (p2:Player {player_id: line.player2_id})
MERGE (p1)-[:VERSUS]-(p2)
Видимо USING PERIODIC COMMIT 500
не помогло, как я получил свою ошибку,
Java heap space
погуглить вокруг, я узнал, что это могло бы помочь изменить мои настройки памяти в файле Neo4j-wrapper.conf, поэтому я изменил настройки вплоть до 4 Гб (у меня есть система восьми GB):
wrapper.java.initmemory=4096
wrapper.java.maxmemory=4096
По-прежнему такая же ошибка.
Теперь я застрял. Я не могу думать о каких-либо других стратегиях, кроме того:
1) переписать заявление
2) использовать систему с большим объемом оперативной памяти?
3) найти другой способ запустить это партиями?
Любые советы были бы замечательными. Благодаря сообществу neo4j SO заранее.
Я сделал, как вы сказали; Я удалил индекс, добавил уникальное ограничение, а затем проверил план запроса. В самом деле ... есть «жаждущий» скрываться! Теперь мне нужно прочитать документацию и посмотреть, как я могу обойти это. Спасибо, что указал мне в этом направлении. –
Ссылка на блог Марка Нидхэма рекомендует избегать слишком многого во время любой итерации 'LOAD CSV'. В моем случае, я делаю одно дело только на одной итерации 'LOAD CSV' ... –
Какая версия neo4j у вас есть? –