微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有嵌套组步骤的Gremlin查询给出了映射错误

如何解决带有嵌套组步骤的Gremlin查询给出了映射错误

查询的每个部分分别工作,但是当嵌套时会发生错误

错误状态:

"The provided traverser does not map to a value."

无论哪个子查询是嵌套的,都会发生这种情况。 我曾尝试将fold()步骤放入查询的各个部分,但这并没有解决问题。

起作用的单个查询如下:

g.withSack(90D).V(provided)
.repeat(
    out('label')
    .sack(div)
    .by(constant(3D)))
.emit()
.group()
.by(
    local(
        union(
            id(),values('name','year'))
        .fold()))
.by(
    sack()
    .sum())
.unfold()
.order()
.by(values,decr)

和:

g.V(provided)
.repeat(
    identity().as('i')
    .out('label').as('l'))
.emit()
.group()
.by(
    select('l').id())
.by(
    local(
        union(
            select('l').id(),select('i').id())
        .fold())
    .dedup()
    .count())
.unfold()
.order()
.by(values,decr)

带有嵌套组的问题查询一个版本是:

g.withSack(90D).V(provided)
.repeat(
    identity().as('i')
    .out('label').as('l')
    .sack(div)
    .by(constant(3D)))
.emit()
.group()
.by(
    select('i').id())
.by(
    local(
        union(
            select('l').id(),select('i').id())
        .fold())
    .dedup()
    .count()
    .group()
    .by(
        select('l').id())
    .by(
        sack()
        .sum()))
.unfold()
.order()
.by(values,decr)

以相反的顺序嵌套:

g.withSack(90D).V(provided)
.repeat(
    identity().as('i')
    .out('label').as('l')
    .sack(div)
    .by(constant(3D)))
.emit()
.group()
.by(
    select('l').id())
.by(
    sack()
    .sum()
    .group()
    .by(
        select('l').id())
    .by(
        local(
            union(
                select('l').id(),select('i').id())
            .fold())
        .dedup()
        .count())))
.unfold()
.order()
.by(values,decr)

我正在使用随最新的JanusGraph 0.5.2数据库打包的Gremlin,这是我要查询的数据所在的地方。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。