在gremlin中的sample方法内部传递动态值不起作用



我是这个小精灵的新手。我正试图根据一些条件得到一些随机顶点。但是,如果我使用的是一些数学计算的样本方法,它是不起作用的。但如果我给出整数值,它就可以正常工作。

以下查询工作正常:

g.V().hasLabel('Person').sample(1)

以下查询不起作用:

g.V().hasLabel('Person').sample(math('4/2'))

实际上,根据人数,我应该在样本法中进行一些数学计算。提前感谢

这是您尝试运行的Gremlin的一个有趣部分。我以前从未见过有人尝试过。遗憾的是,它不会起作用,因为sample()不将Traversal作为一个自变量。只需要一个数字。除了在Gremlin之外进行计算之外,这个问题没有其他解决方法,如果您需要根据查询中的数据选择样本大小,这将毫无帮助。sample()并不是唯一这样做的步骤。我创建了TINKERPOP-2414来跟踪这个问题。

您所需要做的就是:g.V().hasLabel('Person').sample(Math.round(4/2).intValue())

Gremlin在一个时髦的外壳中运行。如果有疑问,可以检查如何将Long转换为Integer,以便以Integer为参数的示例函数可以工作。

最新更新