cypher 有没有批量查询的程序?
发布于 6 年前 作者 feng1990liu 3548 次浏览 来自 问答

一个cypher输入参数是A,返回结果是a 一个cypher输入参数是B,返回结果是b 一个cypher输入参数是C,返回结果是c 每次都要用py2neo 的graph.evaluate函数,a b c串行执行下来很耗时,有没有办法能执行一次,得到三个结果(在函数上封装a b c不可行,还是要执行三次graph.evaluate),目标是提升查询速度,快速返回。

10 回复

可以用多个match语句啊,上个match 的结果当做下个match的输入参数。中间用with连接,详细请看with 用法的官方文档

@pangguoming 我的意思是a 与B b没有任何输入输出上的关系,只是将a,b,c都返回,比如我有两个函数输入都是A,一个返回是A的一度好友个数 另一个返回A得二度好有个数,原则上这两个要执行两次graph.evaluate,但是我觉得执行两次比较耗时,能不能整合成一个函数,然后执行graph.evaluate一次

Restful接口有批量提交cypher的接口,结果也是批量返回的,我不知道py2neo是否集成了这个接口,如果没有,那在你程序里自己集成下即可。

@pangguoming 谢谢!我去研究下

@pangguoming Restful接口是标准的json交互吗?有没有详细点的neo4j相关的方法,官方文档、关键字都行,目标是批量提交查询,不是批量提交插入和更新

restful 接口介绍 批量操作部分 第97页 image.png

接口文档:链接: https://pan.baidu.com/s/1dgeB0wXY3_eSbci3qrtTcQ 提取码: fbu4

@pangguoming 谢谢哈 我研究下 我买了你的课哈

@pangguoming 大佬 我看这个batch是执行添加或更新的,不需要返回数据。Batch operations lets you execute multiple API calls through a single HTTP call. This improves performance for large insert and update operations significantly.我想要match return那种,需要返回数据的批量返回数据方法

老哥,我也遇到了这样一个问题,请问这个问题解决了吗?望不吝赐教(滑稽)

回到顶部