代码之家  ›  专栏  ›  技术社区  ›  cegprakash

在社交网络应用中使用gremlin python Janus

  •  1
  • cegprakash  · 技术社区  · 6 年前

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

    我还计划使用IBM的 ComposeForJanusGraph 未来。

    1) 我正在关注gremlin_python的tinkerpop文档,由于找不到任何好的文档,我在语法方面遇到了几个问题。只有我找到的文件 here 也很短,对如何做积垢没有多大帮助。(例如,如何创建新数据库、如何配置搜索或存储数据库、如何创建节点、如何创建边、如何查询具有特定边的顶点等都没有很好的文档记录。当我自己尝试时,它们都不起作用。)

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

    1 回复  |  直到 5 年前
        1
  •  4
  •   stephen mallette    6 年前

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

    小妖精就是小妖精。不管是Python、Java、C还是Javascript,都是Gremlin。因此,使用Python的Gremlin文档很“简短”,因为它简单地显示了如何启动 GraphTraversalSource 这样你就可以产卵了 Traversal 实例。从那里,您可以访问Gremlin提供的所有标准步骤:

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

    in() in_() 在Python中。

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

    Graph 实现特定于您选择的图形数据库。在Python中通常不会这样做。您将使用图表提供的方法。如果您的图形是IBM Compose上的JanusGraph,那么您应该参考他们的文档。只有在使用gremlin python建立之后,才能连接到该图。

    只是小精灵。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()
    

    如何查询具有特定边的顶点,目前还没有很好的文档记录。

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

    因此,上面的方法是找到一个名为“cegprakash”的顶点,然后用一个值大于零的“vote”属性遍历所有标记为“ask”的传出边。

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

    如果您以前没有使用过图形,请从简单开始。使用TinkerGraph和 Gremlin Console