gpt4 book ai didi

Gremlin 查询在 ResultSet 中返回多个结果

转载 作者:行者123 更新时间:2023-12-05 05:13:43 28 4
gpt4 key购买 nike

可能是我对 gremlin 查询的理解有误 :)。我正在尝试从 Java 客户端执行查询,查询是:g.V().hasLabel('MYLABEL')。有多个(比如 20 个)与标签匹配的顶点,结果集只有 一个 结果,其中包含所有 20 个顶点的数据。我想要包含 20 个结果的 ResultSet。我需要用什么方式重新排列查询。请提出建议。

  • 更多细节:

从控制台。

[从 gremlin 控制台运行的查询结果][1]

gremlin> client.submit("g.V().hasLabel('PERSON')")

==>结果{object=v[11] class=org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex}==>结果{object=v[13] class=org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex}==>结果{object=v[15] class=org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex

来自 Java 客户端查询 -> g.V().hasLabel('PERSON')

结果 -> result{object={@type=g:List, @value=[{@type=g:Vertex, @value={id={@type=g: Int64,@value=11},label=PERSON,properties={AGE=[{@type=g:VertexProperty,@value={id={@type=g:Int64,@value=12},value={@ type=g:Int32, @value=11}, label=AGE}}]}}}, {@type=g:Vertex, @value={id={@type=g:Int64, @value=13}, label=PERSON, properties={AGE=[{@type=g:VertexProperty, @value={id={@type=g:Int64, @value=14}, value={@type=g:Int32, @value =12}, label=AGE}}]}}}, {@type=g:Vertex, @value={id={@type=g:Int64, @value=15}, label=PERSON, properties={AGE =[{@type=g:VertexProperty, @value={id={@type=g:Int64, @value=16}, value={@type=g:Int32, @value=13}, label=AGE} }]}}}]} class=java.util.LinkedHashMap}

最佳答案

只需使用 fold() - 你可以在这里看到我的例子:

gremlin> cluster = Cluster.open()
==>localhost/127.0.0.1:8182
gremlin> client = cluster.connect()
==>org.apache.tinkerpop.gremlin.driver.Client$ClusteredClient@51efb731
gremlin> r = client.submit("g.V().hasLabel('person')").all().get()
==>result{object=v[1] class=org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex}
==>result{object=v[2] class=org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex}
==>result{object=v[4] class=org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex}
==>result{object=v[6] class=org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex}
gremlin> r = client.submit("g.V().hasLabel('person').fold()").all().get()
==>result{object=[v[1], v[2], v[4], v[6]] class=java.util.ArrayList}

请注意,此示例中 fold() 的缺点是结果不会流回客户端。您将在服务器的内存中构建整个列表,然后它将将该列表序列化为单个有效负载。如果该列表足够大并且您生成了足够多的此类列表,您可能会遇到内存/GC 问题。

关于Gremlin 查询在 ResultSet 中返回多个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53203394/

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