Gremlin 小精灵顶点id与标签:优势?

Gremlin 小精灵顶点id与标签:优势?,gremlin,Gremlin,我正在设计一个图,并看到一些示例,其中几个顶点将具有类似的标签,如“用户”等。当知道其唯一值时,可以将其指定给顶点的“id”,并将其查找为: g.V('person').has('id','unique-value'). ... 或者将该唯一值指定为标签,并以这种方式引用它 g.V('unique-value'). ... 是否有特殊原因不使用唯一值(本质上是id)作为标签,例如性能?什么是最好的策略?你的问题和你的小精灵例子不太一致。我想你的意思是比较: g.V().hasLabel('p

我正在设计一个图,并看到一些示例,其中几个顶点将具有类似的标签,如“用户”等。当知道其唯一值时,可以将其指定给顶点的“id”,并将其查找为:

g.V('person').has('id','unique-value'). ...
或者将该唯一值指定为标签,并以这种方式引用它

g.V('unique-value'). ...

是否有特殊原因不使用唯一值(本质上是id)作为标签,例如性能?什么是最好的策略?

你的问题和你的小精灵例子不太一致。我想你的意思是比较:

g.V().hasLabel('person').has(T.id,'unique-value')

请注意我在第一个小精灵声明中的更正
V()
不接受顶点标签作为参数-它只能接受顶点
id
顶点
对象。此外,实际顶点标识符必须由
T.id
引用,而不是
'id'
,后者是对名为“id”的用户定义属性的引用
T.id
是从
g.V().id()
返回的内容。我们经常将
T.id
称为
id
,我将继续这样做

解决了这个问题后,如果你手边有
id
的话,就不需要做
hasLabel('person')
,因此,上面的两个示例返回相同的值,我认为大多数图形数据库可能会优化标签过滤器,只使用
id
进行查找,因此我不认为您会看到性能上的差异,但出于可读性目的,我坚持只使用
V('unique-value')


您的问题特别询问了使用唯一标签作为标识顶点的方法,因此我也将对此进行说明。标签并非用于唯一标识图形元素。它旨在对元素组进行分类。除此之外,我认为还有一些技术原因不这样做。某些图形对您可以拥有的标签数量有限制,因此这可能是一个问题,具体取决于您的图形提供程序。至少,这样做会降低代码的可移植性。我认为这会影响性能,因为
label
查找的速度不如
id
查找的速度快(特别是当您放大图形时)

似乎我确实不懂语法,我想我看了太多的.addV('label-name')示例。谢谢
g.V('unique-value')