gpt4 book ai didi

Gremlin 顶点 id 与标签 : advantages?

转载 作者:行者123 更新时间:2023-12-02 12:06:34 25 4
gpt4 key购买 nike

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

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

或者将该唯一值分配为标签,并以这种方式引用它。

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

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

最佳答案

您的问题和 Gremlin 示例不太一致。我认为你的意思是比较:

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

g.V('unique-value')

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

理清这一点后,如果您手边有 id,则无需执行 hasLabel('person'),因此上面的两个示例返回相同的结果值,我认为大多数图形数据库可能会优化标签过滤器,只使用 id 进行查找,所以我不认为您会看到性能上的差异,但为了可读性我坚持只使用 V('unique-value')

您的问题特别询问了使用唯一标签作为识别顶点的方式,所以我也将解决这个问题。标签并不意味着图形元素的唯一标识。它旨在对元素组进行分类。除了该惯例之外,我认为还有许多技术原因不这样做。某些图表对您可以拥有的标签数量有限制,因此这可能会成为问题,具体取决于您的图表提供商。至少,这样做会降低代码的可移植性。我认为这会影响性能,因为 label 查找不会像 id 查找那么快(特别是当您放大图形的大小时)。

关于Gremlin 顶点 id 与标签 : advantages?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53687516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com