选择在Python中使用Neo4j的适当方法 [英] Choosing an appropriate way to use Neo4j in Python
问题描述
我目前正在为neo4j使用嵌入式python绑定.由于图形非常小(稀疏且最多100个节点),因此我目前没有任何问题.我正在开发的算法在图形上涉及很多遍历,更具体地说,是在图形上以及在不同子图上的DFS. 将来,我打算在大型图上运行该算法(据说是稀疏的,有数百万个节点).
I am currently using embedded python binding for neo4j. I do not have any issues currently since my graph is very small (sparse and upto 100 nodes). The algorithm I am developing involves quite a lot of traversals on the graph, more specifically DFS on the graph in general as well as on different subgraphs. In the future I intend to run the algorithm on large graphs (supposedly sparse and with millions of nodes).
已阅读与python/neo4j绑定的性能相关的不同线程此处,此处,我想知道我是否应该已经切换到某个Python的REST API客户端(例如bulbflow,py2neo,neo4jrestclient),直到我无法更改所有代码为止.
Having read different threads related to the performance of python/neo4j bindings here, here, I wonder whether I should already switch to some REST API client for Python (like bulbflow, py2neo, neo4jrestclient) until I am too far to change all code.
不幸的是,我没有找到任何全面的信息来比较不同的方法.
Unfortunately, I did not find any comprehensive source of information to compare different approaches.
任何人都可以对这个问题提供进一步的见解吗?选择其中一个选项时应考虑哪些标准?
Could anyone provide some further insight into this issue? Which criteria should I take into account when choosing one of the options?
推荐答案
Django是MVC Web框架,因此如果您要成为Web应用程序,您可能会对此感兴趣.
Django is an MVC web framework so you may be interested in that if yours is to be a web application.
从py2neo(我是作者)的角度出发,我试图通过在适当的情况下自动使用批处理执行机制以及提供强大的Cypher支持,来专注于性能.最近,我还做了很多工作来为索引中的唯一性管理提供良好的选项-具体来说,get_or_create
和add_if_none
方法.
From the point of view of py2neo (of which I am the author), I am trying to focus hard on performance by using the batch execution mechanism automatically where appropriate as well as providing strong Cypher support. I have also recently put a lot of work into providing good options for uniqueness management within indexes - specifically, the get_or_create
and add_if_none
methods.
这篇关于选择在Python中使用Neo4j的适当方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!