Когда я печатаю этот запрос в оболочке Neo4j:Cypher запрос дает java.lang.OutOfMemoryError
MATCH (b:PHARMA)-[r:HAS_DONATED]->(a:DOCTOR)
WITH a,r,b, r.DECL_AVANT_MONTANT as total, COUNT(r) as count
MERGE (b)-[:RELATIONSHIP {
totalDECL: total,
numberDECL: count
}]->(a);
Я получаю это сообщение:
Error occured in server thread; nested exception is: java.lang.OutOfMemoryError: Java heap space
Любая идея о том, как обойти это?
В чем смысл 'COUNT (r) как count'? Результат будет всегда ** 1 **, потому что вы используете 'r' в' WITH'. –
Узлы PHARMA и узлы DOCTOR могут иметь несколько отношений HAS_DONATED. Я пытаюсь создать одно отношение, которое суммирует его. Он должен содержать количество отношений HAS_DONATED и сумму суммы пожертвований. Это ясно? – jvilledieu
Если вы запустите этот запрос: 'MATCH (b: PHARMA) - [r: HAS_DONATED] -> (a: DOCTOR) С a, r, b, r.DECL_AVANT_MONTANT как итого, COUNT (r) в качестве счетчика RETURN count (*) 'вы увидите, что вы будете MERGE _a lot_ данных, поэтому размер вашей транзакции заполняет всю доступную кучу и взорвется. –