Neo4j中的存储过程

时间:2014-02-14 12:55:03

标签: nosql neo4j graph-databases

我想知道是否有任何Neo4j等效的存储过程? 当我研究这个时,我遇到了events,但我发现它们更像触发器而不是存储过程。

3 个答案:

答案 0 :(得分:4)

基本上有两种扩展Neo4j服务器的技术:

  1. Server plugins丰富了现有的REST端点和
  2. unmanaged extensions允许您创建新的REST端点
  3. 这两种技术都需要在JVM(或其他JVM语言)中编写代码,打包jar文件并将其部署到Neo4j服务器。

答案 1 :(得分:3)

从版本3.0开始,存储过程可以从Cypher语言中获得CALLABLE功能

修改

由于Neo4J 3.0已于4月和16日发布,因此存储过程成为官方的Apache 2.0许可存储库。

http://neo4j-contrib.github.io/neo4j-apoc-procedures/

可用的程序包括从数据操作/导入到空间和复杂图形算法(例如Page Rank,Dijkstra,社区检测,中介中心性,亲密度中心性等)

答案 2 :(得分:1)

我在这里的回答没有直接回答这个问题(Stefan的回答对此很好)。话虽如此,如果你们中的任何人正在考虑在你的项目实际用于生产之前编写服务器插件(以获得存储过程行为)(在撰写本文时,绝大多数是Neo4j用户群),我强烈建议这样做。

服务器插件为项目增加了架构复杂性。您将需要JVM开发人员来维护它们。部署或更新它们可能很棘手,并且相关的源控制方法不直观。 Neo4j不需要架构迁移,这使您作为开发人员的工作更容易。添加服务器插件将不再为您带来好处,并且因为它不是Neo4j的主流用例,您将从开发人员社区获得一些帮助,并且与该功能相关的改进和错误修复将被赋予较少的优先级。 Neo4j团队。

所有这些都可能会带来轻微的性能提升,或者根本没有。

“存储过程”(或使用服务器插件)是性能调优环境中的一个重要特性,但如果你的团队仍然是车库中的两个人,甚至不要考虑走这条路