微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何提高Neo4j的查询效率?

如何解决如何提高Neo4j的查询效率?

我需要使用apoc.export.cyphe.data()函数导出数据库的一部分。 这是我用来调用函数代码

client.setRequestHeader("Authorization","Basic " + btoa("username:password"));

问题在于查询 匹配路径=(p1:作者)-[r:CO_AUTHORSHIP]-(p2:作者) 需要一个多小时!

我有一个具有467437 CO_AUTHORSHIP关系的数据库数据库的每个节点代表一个作者。对于每个关系边缘,我都存储由两位作者撰写的文章数据文章数量,类型,地点,标题和年份)。

我有没有办法提高查询效率?

解决方法

您的查询将每个Author多次放入export_nodes,并且将每个CO_AUTHORSHIP关系多次放入export_rels。这应该更快并且使用更少的内存:

MATCH path = (a:Author)-[r:CO_AUTHORSHIP]-()
WITH COLLECT(DISTINCT a) AS export_nodes,COLLECT(DISTINCT r) AS export_rels
CALL apoc.export.cypher.data(
  export_nodes,export_rels,'/tmp/export.cypher',{format:'cypher-shell',cypherFormat: 'updateAll'}) YIELD nodes,relationships,time
RETURN nodes,time

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。