2

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

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

我面临的问题:

1) 我正在关注 gremlin_python 的 tinkerpop 文档,但由于找不到任何好的文档,所以我在语法方面遇到了几个问题。我在这里找到的唯一文档也很短,对如何进行 CRUD 没有太大帮助。(例如如何创建一个新数据库,如何配置搜索或存储数据库,如何创建节点,如何创建边,如何查询具有特定边的顶点都没有清楚地记录。没有一个当我尝试自己时有效。)

2)在学习和构建它之前我应该​​知道什么?

4

1 回答 1

4

我找不到任何好的文档。我在这里找到的唯一文档也很短,没有那么有用

Gremlin 就是 Gremlin 就是 Gremlin。它是 Python 还是 Java 或 C# 还是 Javascript 都没有关系——这只是 Gremlin。因此,使用 Python 的 Gremlin 的文档很“简短”,因为它只是显示了您如何启动GraphTraversalSource允许您生成Traversal实例的方法。从那里,您可以访问 Gremlin 提供的所有标准步骤:

http://tinkerpop.apache.org/docs/current/reference/#graph-traversal-steps

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

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

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

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

这只是格林姆林。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 语言,然后开始研究 JanusGraph 在 Compose 下的配置和操作方式。到那时,您将有一个很好的基础来深入了解您的应用程序将如何实际工作,并在必要时提出更具体的问题。

于 2018-07-24T10:44:31.923 回答