Я успешно перенесла dblp dataset в базу данных neo4j, и я использую neo4jShell для запуска запросов cypher. База данных содержит миллионы узлов и отношений между публикациями и авторами. Теперь, когда я пытаюсь выполнить запрос на базе Neo4j это занимает от 10 до 12 часов для обработки, а затем в конечном итоге с этой ошибкойБаза данных диаграмм Neo4j java.lang.OutOfMemoryError: Java куча пространства. База данных диаграммы Neo4j
Error occurred in server thread; nested exception is : java.lang.OutOfMemoryError: Java heap space
я использую Neo4j Community Edition версии 2.2.3, JDK 1.7 машина с 8 ГБ памяти и процессор Core i7.
Запрос:
neo4j-sh (?)$ MATCH (p:`publication`)-[:`publishedby`]->(a:`author`)
RETURN p.year, p.type, a.id, count(*) order by a.id desc LIMIT 25;
Эксперты, пожалуйста, советы мне какой-нибудь выход из этого исключения.
Похоже Neo4j не очень подходит. Это будет тривиальной проблемой для реляционной базы данных. Базы данных объектов имеют смысл для графиков глубоких объектов. Это не похоже на случай здесь. – duffymo
Дубликат [Как установить максимальное использование памяти для JVM?] (Http://stackoverflow.com/questions/1493913/how-to-set-the-maximum-memory-usage-for-jvm) – l4mpi
Попробуйте переписать Ваш запрос. Пример: 'MATCH (a: author) С МАСШТАБОМ LIMIT 25 (p: публикация) - [p: publishedby] -> (a) RETURN p.year, p.type, a.id ORDER BY a.id desc'. Использование оператора 'WITH'. – FylmTM