Elasticsearch Python创建文档时能否同时应用多个pipeline?
结论
Elasticsearch 文档写入类 API 的pipeline参数原生仅支持传入单个字符串类型的管道名称,你尝试的传入数组形式pipeline=["has_pls", "has_age"]的调用方式不被支持,会触发参数类型校验错误。
可行实现方案
方案1:创建组合管道复用现有逻辑(推荐)
无需重写两个已有管道的内部规则,只需新增一个组合管道,通过内置的pipeline处理器按顺序调用已有的两个管道即可,同时支持灵活调整两个管道的执行顺序:
创建组合管道的请求示例:
PUT _ingest/pipeline/combined_pls_age { "processors": [ { "pipeline": { "name": "has_pls" } }, { "pipeline": { "name": "has_age" } } ] }
写入文档时指定该组合管道即可完成两个规则的依次执行:
es.create(index=index, id=ID, body=body, pipeline="combined_pls_age")
方案2:直接合并管道处理器
如果不想新增额外的管道资源,也可以把has_pls和has_age的所有处理器按执行顺序合并到同一个管道中,效果与上述方案一致,缺点是后续规则迭代时需要同步维护重复的逻辑。
内容的提问来源于stack exchange,提问作者Phil Cho
相关产品推荐
相关产品推荐

