python-3.x - 使用 gremlin-python Janus 进行社交网络应用

标签 python-3.x graph-databases janusgraph gremlin-server gremlinpython

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

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

我面临的问题:

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

2)在学习和构建之前我应该​​了解什么?

最佳答案

I couldn't find any good documentation. Only documentation I found here is also very short and not that helpful

小鬼就是小鬼就是小鬼。无论是 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中。

For example how to create a new database, how to configure the search or storage database,

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

how to create a node, how to create an edge,

这只是小鬼。 Gremlin 有将图突变为 add a vertex 的步骤和到 add an edge因此,要创建两个顶点和它们之间的一条边,我可以将单个遍历串在一起:

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()

how to query for a vertex with a specific edge is not documented well clearly.

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

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

所以上面说的是找到一个名为“cegprakash”的顶点,然后遍历所有标记为“ask”且具有大于零的“vote”属性的传出边。

Is there anything I should know before I learn and build it?

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

关于python-3.x - 使用 gremlin-python Janus 进行社交网络应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51475573/

相关文章:

history - 跟踪图数据库中的历史记录

neo4j - 如何强制 Neo4j 使用 2 个索引?

java - JanusGraph 添加边缘似乎不起作用

python-3.x - 了解使用 Gremlin-Python 添加边的不同方法

java - 我可以对嵌入的 JanusGraph 实例执行 Gremlin 查询吗?

mysql - 从 python mysql 连接器连接到 Amazon RDS mysql 时出现 SSL 连接错误

python - 如何在单独的文件中获取函数的函数名称?

Python 脚本未创建足够的输出行

python - 将 header 添加到 Numpy 数组

neo4j - 如何获取neo4j中特定节点的所有子节点