将gremlin-python-Janus用于社交网络应用程序



我开始使用图形数据库。我想将一个社交网络应用程序从sql迁移到Janus Graph数据库。我计划使用PythonDjango框架构建应用程序。

我还计划在未来使用IBM的ComposeForJanusGraph来扩展应用程序。

我面临的问题:

1( 我正在关注gremlin_python的修补程序文档,由于找不到任何好的文档,我在语法方面遇到了一些问题。我在这里找到的文档也很短,对如何进行CRUD没有太大帮助。(例如,如何创建一个新数据库,如何配置搜索或存储数据库,如何创建节点,如何创建边,如何查询具有特定边的顶点,这些都没有很好地记录下来。当我自己尝试时,它们都不起作用。(

2( 在我学习和构建它之前,有什么我应该知道的吗?

我找不到任何好的文档。我在这里找到的唯一文档也很短,对没有帮助

小精灵就是小精灵。不管是Python、Java、C#还是Javascript,都只是Gremlin。因此,使用Python为Gremlin编写的文档很"简短",因为它只是显示了如何启动允许生成Traversal实例的GraphTraversalSource。从那里,您可以访问Gremlin提供的所有标准步骤:

http://tinkerpop.apache.org/docs/current/reference/#graph-遍历步骤

因此,文档的其余部分基本上适用于您的需求。需要考虑的主要技巧是,一些步骤名称与Python保留字冲突——在这种情况下,该步骤是用下划线后固定的,因此,Java的in()步骤在Python中变成了in_()

例如,如何创建新数据库,如何配置搜索或存储数据库,

你不会在TinkerPop文档中找到这一点。如何创建/配置TinkerPopGraph实现取决于您选择的图形数据库。在Python中通常不会这样做。您将采用图形提供的方法。如果您的图形是IBMCompose上的JanusGraph,您应该查阅他们的文档。只有在使用gremlin-python建立后,才能连接到该图。

如何创建节点,如何创建边缘,

这只是Gremlin。Gremlin有一些步骤可以改变Graph,从而添加顶点和边,从而创建两个顶点和它们之间的边。我可以将单个遍历串在一起:

g.addV('person').property('name','cegprakash').as('c').
addV('question').property('title','Using gremlin-python Janus for social networking application').as('q1').
addV('question').property('title','Working of CCD algorithm for Inverse Kinematics').as('q2').
addE('asks').property('votes',0).from('c').to('q1').
addE('asks').property('votes',1).from('c').to('q2').iterate()

如何查询具有特定边的顶点没有很好地记录。

再说一遍,这只是Gremlin,有很多例子。

g.V().has('person','name', 'cegprakash').
out('asks').
has('votes',gt(0))

如上所述,找到一个名为"cegprakash"的顶点,然后遍历所有标记为"ask"的带有"vote"属性的传出边,该属性的值大于零。

在学习和构建它之前,我应该知道什么吗?

如果您以前没有使用过图形,请从简单开始。使用TinkerGraph和Gremlin控制台熟悉Gremlin语言,然后开始研究如何在Compose下配置和操作JanusGraph。到那时,您将有一个很好的基础来深入了解您的应用程序的实际工作方式,并在必要时提出更具体的问题。

相关内容

最新更新