Я пытаюсь проглотить график, который содержит ~ 100 узлов, но ~ 10K отношений, которые имеют временную метку.
После некоторых исследований я использовал пакетные транзакции и смог сократить время приема с 6 минут до 40 секунд, используя UNWIND на моей локальной машине (localhost)
Однако, когда я отправляю одни и те же пакетные транзакции с отношениями 10 КБ на другой сервер, это занимает более 3 минут.
Какие стратегии можно использовать, чтобы сократить время приема до neo4j на удаленном сервере? (Моя причина, по которой я разместил удаленный сервер, заключалась в том, чтобы отделить циклы выполнения neo4j от моего компьютера, который должен выполнять множество задач nlp, необходимых для моего приложения, сервер находится на моей локальной сети, и я единственный пользователь, подключенный к нему с помощью ip-адреса. ).
Мой запрос на прием здесь:
result = cypher.query("CREATE CONSTRAINT ON (n:USPolitics) ASSERT n.id IS UNIQUE",map());
parameters = createrelations();
result = cypher.query(
"UNWIND {batches} as batch " +
"MATCH (nodeA {id: batch.nodeA})"+
"MATCH (nodeB {id: batch.nodeB})"+
"MERGE (nodeA)-[rel:KNOWS]->(nodeB)" +
"ON CREATE SET rel+=batch.properties " +
"RETURN 1", parameters);