2

Amazon Neptune 支持一个顶点的多个标签。虽然我可以向顶点添加新标签,但我找不到删除它的方法。

我发现

vertex.addLabel('human')
vertex.removeLabel('human')

http://tinkerpop.apache.org/docs/current/reference/#_multi_label

AWS Neptune 不支持。


还尝试drop()诸如属性之类的标签不起作用。

海王星文档说:

gremlin> g.addV('label1').property(id, 'customid')
gremlin> g.addV('label2').property(id, 'customid')
gremlin> g.V('customid').label()
==>label1::label2

但是这样你就只能添加标签,而不会删除标签。

我正在寻找某种方法,例如removeLabel()在不删除顶点的情况下删除标签。

4

1 回答 1

2

您可以在 [1] 的 Apache TinkerPop 文档中找到此文本

“这是因为 TinkerPop 不允许在创建顶点后更改顶点标签。”

根据 TinkerPop 参考文档和实现,不允许在创建顶点标签后更改它。据我所知,如果不是所有启用 TinkerPop 的 Graph DB,大多数(如果不是全部)都对此表示敬意。

您找到的示例是直接连接(而不是通过 Gremlin 服务器样式的连接)时对 Neo4J 的自定义支持的一部分,其中可以直接操作顶点对象。

如果您需要可编辑标签的概念,我建议您改用属性。在按属性查找与按标签查找方面,最终结果将大致相同,并且更便携。

[1] http://tinkerpop.apache.org/docs/current/reference/#_graphml_reader_writer

于 2019-01-03T15:16:20.923 回答