本文转载自科多大数据
一、背景介绍
用户自定义函数,顾名思义就是开发一些个性化方法去解决复杂的业务逻辑问题。虽然它的功能还不够强大,但是足够去扩展和提升Neo4j的一些常用命令功能。
在Neo4j中,自定义函数是需求利用Java语言去独立开发,然后生成.jar文件去部署在图数据库的安装目录plugin中,如果是集群的话,每台服务器都需要部署。再重新启动图数据库才能生效。
对于自定义函数的调用,它跟常用的Cypher方法一样,只是函数名的规范会有限定,比如自定义函数join,它在Java工程中的目录结构为org.neo4j.examples,因此它在调用时的规范写法为org.neo4j.examples.join(参数)。
另外,自定义函数的结果输出类型很多,具体如下所示:
• java.lang.Boolean or boolean
• java.lang.Double or double
• java.lang.Long or long
• java.lang.Number
• java.lang.Object
• java.lang.String or string
• java.util.List
• java.util.Map
• org.neo4j.graphdb.Node
• org.neo4j.graphdb.Relationship
• org.neo4j.graphdb.Path
• org.neo4j.graphdb.spatial.Geometry
• org.neo4j.graphdb.spatial.Point
• Map<String, Object>
• List<T>
当然,现有的Neo4j图数据库也包含了很多自定义的函数,你可以在正式实践之前去初步了解一下,在命令框输入:CALL dbms.procedures()即可查询到,结果输出包含了函数名、用法说明和功能描述。你后期的开发也可以按照这样的规范标准来。