我配置了Maven并设法运行了像FullTextIndex(https://github.com/neo4j-contrib/neo4j-rdf/blob/master/src/main/java/org/neo4j/rdf/fulltext/FulltextIndex.java)这样的插件。
我仍然很难自己创建一个简单的函数。我想有一个java函数,可以通过ID查找节点并返回其属性。
我知道我可以在Cypher中做到这一点,但目标是了解Neo4j的插件逻辑。
因此,在导入插件后,我应该可以输入:
INPUT ID
call example.function(217)
输出e。克。
name = Tree, age = 85, label = Plant, location = Munich
非常感谢!
答案 0 :(得分:2)
您要找的是User Defined Functions / Procedures
。 neo4j文档中有一个专门的部分:
https://neo4j.com/developer/procedures-functions/#_extending_cypher
http://neo4j.com/docs/developer-manual/current/extending-neo4j/procedures/#user-defined-procedures
您还可以查看APOC,其中包含现实生活中使用的数百个此类示例。
答案 1 :(得分:2)
在Neo4j中,用户定义的过程是简单的.jar文件,您将放在$NEO4J_HOME/plugins
目录中。从逻辑上讲,要创建新的用户定义过程,您需要生成此jar文件。您可以configuring a new maven project或使用存储库Neo4j Procedure Template执行此操作。
用户定义的过程只是Java类,其方法用@Procedure
注释。如果程序在数据库中写入,那么应该定义mode = WRITE
(不是你的情况)。
此外,您还需要查询数据库以按ID获取节点并返回属性。要做到这一点,您需要使用GraphDatabaseService
注释在Java类中注入@Context
类。
为了实现您的目标,我相信您需要使用GraphDatabaseService
中的getNodeById()方法和返回的getProperties()中的Node。