--- title: "删除搜索管道" date: 2026-02-04 lastmod: 2026-02-04 description: "删除指定的搜索管道" tags: ["搜索管道", "删除", "处理器"] summary: "从集群中删除一个或多个搜索管道。 API 格式 # DELETE /_search/pipeline/{id} API 作用 # 该 API 用于从集群中删除搜索管道: 删除指定 ID 的搜索管道 支持通配符批量删除多个管道 删除后无法在搜索请求中使用该管道 API 参数 # 路径参数 # 参数 类型 是否必填 默认值 描述 {id} String 是 - 管道 ID,支持通配符模式 查询参数 # 参数 类型 是否必填 默认值 描述 master_timeout Time 否 30s 连接主节点的超时时间 timeout Time 否 集群默认 操作完成的超时时间 请求示例 # 删除指定管道 # DELETE /_search/pipeline/my-pipeline 使用通配符删除 # DELETE /_search/pipeline/logs-* 删除所有管道 # DELETE /_search/pipeline/* 设置超时时间 # DELETE /_search/pipeline/my-pipeline?" --- 从集群中删除一个或多个搜索管道。 ## API 格式 ``` DELETE /_search/pipeline/{id} ``` ## API 作用 该 API 用于从集群中删除搜索管道: - 删除指定 ID 的搜索管道 - 支持通配符批量删除多个管道 - 删除后无法在搜索请求中使用该管道 ## API 参数 ### 路径参数 | 参数 | 类型 | 是否必填 | 默认值 | 描述 | |------|------|----------|--------|------| | `{id}` | String | **是** | - | 管道 ID,支持通配符模式 | ### 查询参数 | 参数 | 类型 | 是否必填 | 默认值 | 描述 | |------|------|----------|--------|------| | `master_timeout` | Time | 否 | `30s` | 连接主节点的超时时间 | | `timeout` | Time | 否 | 集群默认 | 操作完成的超时时间 | ## 请求示例 ### 删除指定管道 ``` DELETE /_search/pipeline/my-pipeline ``` ### 使用通配符删除 ``` DELETE /_search/pipeline/logs-* ``` ### 删除所有管道 ``` DELETE /_search/pipeline/* ``` ### 设置超时时间 ``` DELETE /_search/pipeline/my-pipeline?timeout=1m ``` ## 响应示例 ### 成功响应 ```json { "acknowledged": true } ``` ## 响应字段说明 | 字段 | 类型 | 描述 | |------|------|------| | `acknowledged` | Boolean | 管道删除是否被集群确认 | ## 错误响应 ### 管道不存在 ```json { "error": { "root_cause": [ { "type": "resource_not_found_exception", "reason": "pipeline [my-pipeline] not found" } ], "type": "resource_not_found_exception", "reason": "pipeline [my-pipeline] not found" } } ``` ## 通配符支持 API 支持通配符模式进行批量删除: - `*`:匹配所有管道 - `logs-*`:匹配以 `logs-` 开头的管道 - `*-v1`:匹配以 `-v1` 结尾的管道 ## 处理逻辑 1. **通配符匹配**:使用 `Regex.simpleMatch()` 匹配管道 ID 2. **批量删除**:所有匹配的管道在单个集群状态更新中删除 3. **错误处理**:如果模式不匹配任何管道(且不是全匹配模式),抛出 `ResourceNotFoundException` ## 使用场景 1. **管道清理**:删除不再使用的搜索管道 2. **版本更新**:删除旧版本管道后创建新版本 3. **批量管理**:使用通配符批量删除相关管道 4. **环境迁移**:在环境迁移前清理旧管道 ## 注意事项 1. **不可恢复**:删除后无法恢复,请谨慎操作 2. **依赖检查**:确保没有搜索请求正在使用该管道 3. **通配符谨慎**:使用 `*` 会删除所有管道,请谨慎操作 4. **原子操作**:批量删除是原子性的,要么全部成功要么全部失败 ## 相关操作 - **PUT /_search/pipeline/{id}**:创建或更新搜索管道 - **GET /_search/pipeline/{id}**:查询搜索管道 - **GET /_search/pipeline**:查询所有管道 - **POST /_search/pipeline/{id}/_simulate**:模拟管道执行 ## 实现文件 - **REST 处理器**:`RestDeleteSearchPipelineAction.java` - **Transport Action**:`DeleteSearchPipelineTransportAction.java` - **请求类**:`DeleteSearchPipelineRequest.java` - **服务类**:`SearchPipelineService.java`