You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gremlin如何将返回的review边与对应餐厅顶点聚合为指定输出结构

Gremlin查询结构调整方案

你当前结果重复是因为查询遍历到每条review边后都会输出一条独立结果,只需要按餐厅维度聚合评论即可,调整后的查询如下:

g.V(26).as("cui")
  // 筛选出符合条件的卡拉奇餐厅
  .inE("serves").outV().hasLabel("restaurant").has("location", "karachi")
  // 过滤出存在评分≥2的评论的餐厅
  .where(__.inE("review").has("value", gte(2)))
  // 每个餐厅生成一条目标结构的输出
  .project("restaurant", "reviews")
    // 填充餐厅完整信息
    .by(elementMap())
    // 收集该餐厅所有符合要求的评论,按评分降序排列后收拢为数组
    .by(__.inE("review").has("value", gte(2)).order().by("value", desc).elementMap().fold())

关键改动说明

  • 用project()步骤为每个餐厅生成固定结构的输出,避免重复输出餐厅信息
  • 用fold()步骤将同个餐厅的所有评论边收拢为数组,完全匹配你需要的reviews字段格式
  • 去除了冗余的as()标记和select()步骤,简化查询逻辑

如果不需要保留评论边的ID、标签等元信息,只需要评论属性的话,可以把评论部分的elementMap()替换为valueMap(),输出结果会更简洁。

内容的提问来源于stack exchange,提问作者plutolaser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 09:15:04