2015年最适合使用Python的Neo4j的方法

时间:2015-01-30 02:23:33

标签: python neo4j gremlin py2neo bulbs

我使用最新的社区Neo4j(2.2.0-M03)来存储我的图表。我有兴趣从Python访问它。根据官方Neo4j documentation,有几种选择。

根据我的理解,通过检查文档,玩一下,并检查this post,py2neo是唯一支持Neo4j 2(和标签)的人。但是,如果我想在Neo4j上编写和运行特定算法,我应该使用Gremlin,通过灯泡,然而它似乎不支持Neo4j 2.

现在,我想使用一些目前不在Neo4j中的自定义算法,比如Spreading Activation。 是用Java编写Neo4j直接编写算法,使用cypher命令通过py2neo从Python运行它们是唯一的选择吗?我错过了什么吗?

干杯

PS。我想发布我引用的所有软件的链接,但遗憾的是我需要至少10个声望来发布超过2个链接...

1 个答案:

答案 0 :(得分:4)

这是一个非常棘手的问题,似乎你需要设计指导而不是一个快速的neo4j问题。根据您使用传播激活的方式,最好不要修改服务器,但我不能说,因为您的用例可能涉及。请记住,您始终可以将neo4j用作图形存储,然后在应用程序代码中放置更高级别的概念,例如传播激活,而不是在服务器中。

这个问题假设我认为你想把它放在服务器里。那有什么选择呢?从广义上讲,你可以编写一个服务器插件并扩展RESTful API(它不会帮助你使用py2neo)另一方面,我不认为现在支持定义你自己的自定义cypher功能,所以你无法修改密码语言本身,然后使用py2neo绑定来开发一个奇特的新密码函数。 Advice given elsewhere建议您考虑使用unmanaged extension来实施传播激活。如果你这样做,再一次,我不知道py2neo会如何帮助你。

短期来看,我认为你应该考虑 NOT 修改neo4j本身,而是将你的传播激活放在可能使用py2neo的python代码中。长期来看,如果neo4j提出了一种做cypher用户定义函数(UDF)的方法,我理解它是在开发路线图(也许?)那么这可能是一个更好的选择,但我不推荐它没有更多的要求和细节。