选择合适的方式来使用的Neo4j在Python(Choosing an appropriate wa

2019-06-24 16:31发布

我目前使用的是嵌入式的Python Neo4j的结合。 我没有任何问题,因为目前我的图是非常小的(稀疏和高达100个节点)。 我正在开发的算法涉及相当多的图遍历的,更具体的DFS在一般的图形,以及在不同的子图。 今后我打算上运行大图(据说稀疏,并与几百万个节点)的算法。

有与python /的Neo4j绑定的性能阅读不同的线程在这里 , 在这里 ,我不知道我是否应该已经切换到一些REST API客户端的Python(如bulbflow,py2neo,neo4jrestclient),直到我太远改变所有代码。

不幸的是,我没有找到任何信息综合来源不同的方法进行比较。

任何人都可以提供一些进一步的深入了解这个问题? 选择其中的一个选项时,我应该考虑哪些标准?

Answer 1:

Django是一个MVC Web框架,所以你可能会感兴趣的是,如果你是是一个Web应用程序。

但从py2neo(其中我的作者)的角度来看,我试图通过自动使用批处理执行机制在适当情况下,同时提供强大的支持Cypher支架硬注重业绩。 我最近也投入了大量的工作纳入指数内提供了独特的管理很好的选择-特别是get_or_createadd_if_none方法。



Answer 2:

从Python的运行算法的最简单的方法是使用小鬼( https://github.com/tinkerpop/gremlin/wiki) 。

随着小鬼你可以捆绑到一切一个HTTP请求,以减少往返的开销。

以下是如何从灯泡(执行小鬼脚本http://bulbflow.com ):

>>> from bulbs.neo4jserver import Graph
>>> g = Graph()
>>> script = "g.v(id).out('knows').out('knows')"
>>> params = dict(id=3)
>>> g.gremlin.execute(script, params)

灯泡小鬼API文档是在这里: http://bulbflow.com/docs/api/bulbs/gremlin/



Answer 3:

真的不知道,我不是专家,但我认为这也取决于你的Django的期望,你需要多少的框架。 Py2neo是非常务实的身段,Bulbflow似乎建立一个全栈的映射等,并neo4jrestclient正专注于Django的(可能是错误的)?



文章来源: Choosing an appropriate way to use Neo4j in Python