Gremlin Type促进查询提示 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Gremlin Type促进查询提示

当您提交过滤数值或范围的 Gremlin 遍历时,Neptune 查询引擎在执行查询时通常必须使用类型提升。这意味着它必须检查可以保存您正在筛选的值的每种类型的值。

例如,如果要筛选等于 55 的值,则引擎必须查找等于 55 的整数、等于 55L 的长整数、浮点等于 55.0,依此类推。每个类型促销都需要对存储进行额外的查找,这可能会导致显然简单的查询需要意外的长时间才能完成。

假设你正在搜索客户年龄属性大于 5 的所有顶点:

g.V().has('customerAge', gt(5))

要彻底执行遍历,Neptune 必须扩展查询以检查您查询的值可以升级到的每个数字类型。在这种情况下,gt过滤器必须应用于任何大于 5 的整数、任何长度超过 5L 的任何整数、5.0 以上的任何浮点数以及 5.0 以上的任何双倍数。由于这些类型的每个促销都需要额外查找存储空间,因此在运行GremlinprofileAPI对于此查询,完成所需的时间将比预期的长得多。

通常,类型促销是不必要的,因为你事先知道你只需要找到一种特定类型的值。在这种情况下,您可以通过使用typePromotion查询提示以关闭类型促销。

语法

通过向查询添加 withSideEffect 步骤来指定 typePromotion 查询提示。

g.withSideEffect('Neptune#typePromotion', true or false).gremlin-traversal
注意

所有 Gremlin 查询提示副作用的前缀为 Neptune#

可用值

  • true

  • false

要关闭上述查询的类型促销,您可以使用:

g.withSideEffect('Neptune#typePromotion', false).V().has('customerAge', gt(5))