Elasticsearch文档_id以数组方式返回

背景需求是只需要文档的_id字段,并且_id组装成一个数组。

在搜索请求中使用 script_fields 来整理 _id 为数组输出:

json 复制代码
POST goods_info/_search?size=0
{
  "query": {
    "term": {
      "brand": {
        "value": "MGC"
      }
    }
  },
  "_source":false,
 "aggs": {
    "ids_as_array": {
      "scripted_metric": {
        "init_script": "state.ids = []",
        "map_script": "state.ids.add(doc['_id'].value)",
        "combine_script": "return state.ids",
        "reduce_script": "def ids = []; for (s in states) { ids.addAll(s) } return ids"
      }
    }
  }
  
}

代码说明:

  1. size: 0:表示不需要实际返回任何文档,因为我们只关心聚合结果。
  2. scripted_metric:一个聚合类型,允许在多个阶段中使用脚本来聚合数据。
  3. init_script:在每个分片上初始化状态。在这里,我们初始化了一个空的列表 ids。
  4. map_script:在每个文档上执行。这里,我们将文档的 _id 添加到 ids 列表中。
  5. combine_script:在每个分片上执行,用于合并每个分片的结果。在这里,我们直接返回 ids 列表。
  6. reduce_script:在所有分片结果上执行,用于合并所有分片的结果。在这里,我们将所有分片的 ids 列表合并成一个大的列表。

输出结果:

相关推荐
光仔December6 小时前
【Elasticsearch入门到落地】16、RestClient查询文档-快速入门
elasticsearch·全文检索·restclient·highlevelclient·match查询
Elasticsearch6 小时前
Kibana:如何使用企业微信来接收通知
elasticsearch
Elasticsearch1 天前
哈希、存储、连接:使用 ES|QL LOOKUP JOIN 的日志去重现代解决方案
elasticsearch
yangmf20402 天前
Easysearch 冷热架构实战
java·大数据·elasticsearch·搜索引擎
极限实验室2 天前
ES 调优帖:Gateway 批量写入性能优化实践
elasticsearch
wdfk_prog4 天前
实战教程:从“对象文件为空“到仓库重生——修复 Git 仓库损坏全记录
大数据·网络·笔记·git·学习·elasticsearch·全文检索
Hello.Reader4 天前
以 Eland 玩转 Elasticsearch 8.12 Learning-to-Rank
大数据·elasticsearch·jenkins
ALex_zry4 天前
Git Status 命令深度指南:洞悉仓库状态的核心艺术
大数据·git·elasticsearch
ζั͡山 ั͡有扶苏 ั͡✾4 天前
Elasticsearch 单节点迁移实战指南:从旧服务器到新环境的完整流程
服务器·elasticsearch·jenkins
ALex_zry4 天前
Git 乱码文件处理全流程指南:从识别到彻底清除
git·elasticsearch·搜索引擎