属性未添加到g.addV()的顶点上

时间:2019-07-11 15:46:35

标签: gremlin tinkerpop gremlin-server

使用以下设置在我的本地计算机上运行Gremlin Server:

gremlin.graph=org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph
gremlin.tinkergraph.vertexIdManager=ANY
gremlin.tinkergraph.vertexPropertyIdManager=UUID
gremlin.tinkergraph.defaultVertexPropertyCardinality=list

当我运行查询时:

g.addV('Root')
.property(id,'15c9a352-2261-4ba1-8f54-96d6ac0c1a47')
.property('linkId','15c9a352-2261-4ba1-8f54-96d6ac0c1a47')
.property('name','Root')

我收到以下答复:

{"id":"15c9a352-2261-4ba1-8f54-96d6ac0c1a47","label":"Root","type":"vertex","properties":{}}

没有添加属性,当我获取存储的顶点时,它也不包含属性。

当我运行以下查询时:

graph.addVertex(
id, 'b83c53d4-6bfb-4b8c-a4f2-02a8c0f4a867', 
label, 'Root', 
'linkId', 'b83c53d4-6bfb-4b8c-a4f2-02a8c0f4a867', 
'name', 'root')

我收到以下答复:

{
   "id":"b83c53d4-6bfb-4b8c-a4f2-02a8c0f4a867",
   "label":"Root",
   "type":"vertex",
   "properties":{
      "linkId":[
         {
            "id":"ad8c4ace-7752-40f5-a531-4e03e2083a06",
            "value":"b83c53d4-6bfb-4b8c-a4f2-02a8c0f4a867"
         }
      ],
      "name":[
         {
            "id":"b16492c1-7a43-421d-aa8c-d8f51b2a358e",
            "value":"root"
         }
      ]
   }
}

我知道第一个查询使用g = graph.traversal(),第二个查询使用graph对象。

为什么添加顶点的属性结果会有所不同?

我的gremlin服务器上可能缺少我的设置吗?查询是否有问题?

1 个答案:

答案 0 :(得分:0)

解决方案是将属性gremlin.tinkergraph.defaultVertexPropertyCardinality更改为set

现在使用我的gremlin服务器设置如下:

gremlin.graph=org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph
gremlin.tinkergraph.vertexIdManager=UUID
gremlin.tinkergraph.vertexPropertyIdManager=UUID
gremlin.tinkergraph.defaultVertexPropertyCardinality=set
相关问题