我正在将Neo4j用于学校项目。
我的assingment包含图形数据库(Neo4j)的编写算法并在服务器模式下执行它们。据我所知,在Neo4j中,你只能在Cypher中做到这一点,这对编写更复杂的算法来说还不够好。
是否还有其他可能性,插件或框架,它们提供更复杂的算法编写并在服务器模式下运行它们?
答案 0 :(得分:1)
是的,有办法。在Neo4j世界中,我们将其称为Unmanaged Extension
如果您正在寻找一个可以帮助您编写该扩展程序的框架,我建议您查看GraphAware Neo4j Framework。
答案 1 :(得分:0)
那么,你想制作一些算法? Neo4j为您提供工具!
嵌入式模式非常简单:
1)将neo4j embedded添加到您的项目中
2)Create您的GraphDatabaseService
3)开始编码。
Neo4j提供3个API层。
核心API
最低级别的。它包含GraphDatabaseService::createNode()
,GraphDatabaseService::findNode()
,Node::createRelationshipTo()
等方法。使用这个真的是裸金属。
遍历API
这个是进行任何遍历的好框架。可能这是你正在寻找的来实施alghoritms
入口点 - GraphDatabaseService::traversalDescription()
。
Cypher API
这是Neo4j的真正力量。 Cypher可用于获得非常复杂的图形相关问题的答案
入口点 - GraphDatabaseService::execute()
其他内容
可能你应该研究Neo4j附带的graph alghoritms。 Neo4j服务器REST API也有一些图形alghoritms可用。 here您可以找到包含Neo4j资源的列表(可能有一些有趣的东西)。
但这并不好玩。我想扩展服务器,所以每个人都可以访问我们的花哨的alghoritms?
在为Neo4j服务器编写扩展时,您还使用GraphDatabaseService
与数据库进行交互。
注意:规则 - 如果您创建的库包含与GraphDatabaseService
一起使用的服务,那么您可以在任何地方重复使用它(嵌入模式,插件,扩展等)。
您可以创建server plugin。可能这是你正在寻找实现算法的东西。这个选项可以轻松创建REST端点,可以根据请求接受一些数据,并可以在响应时返回图形数据。
Server plugin example developed by me
其他选项 - unmanaged extension。这个给你真正的力量。但请记住 - 以强大的力量来承担责任 您将负责处理所有输入和输出。
Unmanaged extension example developed by me
GraphAware framework可以为您提供一些开发Neo4j扩展的好工具。你应该尝试一下。