【问题标题】:How can I set array as property in janusgraph?如何在 janusgraph 中将数组设置为属性?
【发布时间】:2020-04-27 05:49:11
【问题描述】:

我想将顶点和边的属性设置为列表值。 我正在使用janusgraph。 Gremlin-python

【问题讨论】:

标签: gremlin janusgraph tinkerpop3 gremlin-server gremlinpython


【解决方案1】:

这是一个使用 gremlin-python 创建一个顶点的示例,该顶点使用属性键 mySet 存储为 Set 的 3 个值。请注意,在使用 gremlin-python 时,某些 Gremlin 步骤的名称后面会带有下划线,以避免与同名的 Python 步骤发生冲突。

result = ( 
    g.addV('test').
        property(Cardinality.set_,"mySet",1).
        property(Cardinality.set_,"mySet",2).
        property(Cardinality.set_,"mySet",3).
      valueMap().
      next()
)

print(result)

{'mySet': [1, 2, 3]}

【讨论】:

  • 如何在控制台上操作?
  • 你问的是 Python 控制台还是 Gremlin 控制台?
【解决方案2】:

在 JanusGraph 中,建议预先创建架构。 LIST 基数意味着您需要一个数组值键。

在 gremlin 控制台中你可以这样做:

mgmt = graph.openManagement(); mgmt.makePropertyKey('myProperty').dataType(String).cardinality(LIST).make(); mgmt.commit();

然后你在 gremlin 中链接属性函数:

g.addV().property('myProperty', 'val1).property('myProperty','val2')

如果您想动态创建架构,您可以在一次 gremlin 调用中完成此操作。您提供了一个以前从未使用过的新属性键(现有键默认具有基数 SINGLE 并且不接受多个值)。您必须告知 gremlin 您所有新插入的值的基数,如下所示:

g.addV().property(list,'myNewProperty', 'val1').property(list,'myNewProperty','val2')

请注意我每次都必须添加列表关键字。

如果您通过 gremlin-python 执行此操作,则第二个选项应该像本机代码一样直接工作。第一个选项要求您通过客户端连接发送架构命令:

from gremlin_python.driver.client import Client

client = Client('ws://urlToServer:8182/gremlin','g')

console_command_string = """mgmt = graph.openManagement(); mgmt.makePropertyKey('myProperty').dataType(String).cardinality(LIST).make(); mgmt.commit();"""

client.submit(console_command_string)

client.close()

【讨论】:

    【解决方案3】:

    通过将属性基数设置为 set 或 list,您可以将多个值附加到属性键。

    找到下面的java sn-p。

    janusGraphVertex.property(VertexProperty.Cardinality.set, "hobbies", "cricket");
    janusGraphVertex.property(VertexProperty.Cardinality.set, "hobbies", "football");
    janusGraphVertex.property(VertexProperty.Cardinality.set, "hobbies", "tennis");
    

    参考link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-04
      • 2012-12-04
      • 2014-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-16
      相关资源
      最近更新 更多