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

如何指定Elasticsearch的ingest pipeline?除查询参数外还有其他使用方式吗?

这不是索引文档时使用ingest pipeline的唯一方式,你提到的在索引请求查询参数中指定pipeline=xxx的方式是单次请求临时指定的常用方案,除此之外还有以下4种常见用法:

  • 为索引设置默认pipeline
    可以给单个索引配置index.default_pipeline参数,配置完成后所有写入该索引的请求,如果没有显式指定pipeline参数,会自动执行该默认pipeline。如果请求中显式指定了pipeline,会覆盖该默认配置。
    配置示例:

    PUT /my_index/_settings
    {
      "index.default_pipeline": "my_default_pipeline"
    }
    
  • 为索引设置强制最终pipeline
    可以给索引配置index.final_pipeline参数,该pipeline的执行优先级最高,不受请求参数的影响:无论请求中有没有指定pipeline,也无论索引有没有配置默认pipeline,在所有其他pipeline执行完成后,都会自动执行该最终pipeline。通常用于全量数据强制脱敏、加统一标识等必须执行的处理逻辑。
    配置示例:

    PUT /my_index/_settings
    {
      "index.final_pipeline": "mandatory_process_pipeline"
    }
    
  • 批量请求中单独指定pipeline
    使用_bulk批量写入API时,既可以在整个批量请求的查询参数中指定统一的pipeline,也可以在单条写入动作的元数据中为不同文档指定独立的pipeline,满足批量写入时不同数据走不同处理逻辑的需求。
    单条指定示例:

    POST _bulk
    { "index" : { "_index" : "my_index", "_id" : "1", "pipeline" : "pipeline_for_doc1" } }
    { "content": "测试数据1" }
    { "index" : { "_index" : "my_index", "_id" : "2", "pipeline" : "pipeline_for_doc2" } }
    { "content": "测试数据2" }
    
  • Reindex时指定pipeline做数据转换
    使用_reindexAPI做数据迁移、索引重建时,可以在目标索引配置项中指定pipeline,对旧索引同步过来的所有数据做统一处理后再写入新索引。
    示例:

    POST _reindex
    {
      "source": {
        "index": "old_index"
      },
      "dest": {
        "index": "new_index",
        "pipeline": "data_transform_pipeline"
      }
    }
    

不同pipeline的执行优先级

  1. 优先执行请求中显式指定的pipeline,请求未指定时执行索引的默认pipeline(如果配置了)
  2. 上述pipeline执行完成后,强制执行索引的最终pipeline(如果配置了)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:48:04