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 列表合并成一个大的列表。

输出结果:

相关推荐
佚名涙1 小时前
5分钟熟练上手ES的具体使用
大数据·学习·elasticsearch·jenkins
一勺菠萝丶10 小时前
深入理解Elasticsearch的`_source`字段与索引优化
大数据·elasticsearch·jenkins
对酒当歌丶人生几何17 小时前
ElasticSearch7.8下载、安装教程
java·elasticsearch·kibana
请叫我江同学呀21 小时前
关于elasticsearch的terms查询超过最大terms数
数据库·elasticsearch·搜索引擎·es·非关系型数据库
自律的蜗牛21 小时前
git报错 remote.origin.url has multiple values
大数据·elasticsearch·搜索引擎
取经蜗牛21 小时前
git使用的说明总结
大数据·git·elasticsearch
小付爱coding21 小时前
Elasticsearch聚合查询
大数据·elasticsearch·搜索引擎
乆乄1 天前
运维学习————运维日志分析系统es——Elasticsearch
elasticsearch
qq31785355711 天前
持续集成与持续交付CI/CD
大数据·elasticsearch·ci/cd
qq_485015211 天前
ElasticSearch
elasticsearch