📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

此 API 用于获取 Easysearch 集群中所有搜索管道(Search Pipeline)的配置信息。

API #

GET /_search/pipeline

API 的作用 #

获取集群中所有搜索管道的配置信息。搜索管道用于自定义搜索请求和响应的处理流程。返回的信息包括:

  • 管道 ID:每个管道的唯一标识符
  • 配置内容:管道的处理器配置(请求处理器和响应处理器)
  • 描述信息:管道的标签和描述(如果有)

API 的参数 #

查询字符串参数 #

参数类型是否必需默认值描述
master_timeouttime可选30s等待主节点响应的超时时间
如果主节点未发现或断开连接,等待指定时间后操作失败
localboolean可选false是否从本地节点返回信息
true:从本地节点获取
false:从主节点获取

请求示例 #

# 查询所有搜索管道
GET /_search/pipeline

# 设置主节点超时时间
GET /_search/pipeline?master_timeout=60s

# 从本地节点获取信息
GET /_search/pipeline?local=true

响应示例 #

成功响应 - 有管道 #

{
  "count": 3,
  "search_pipelines": {
    "semantic-pipeline": {
      "config": {
        "request_processors": [
          {
            "type": "semantic_query_enricher",
            "tag": "semantic_enrichment",
            "description": "使用语义增强查询",
            "model_name": "text-embedding-ada-002",
            "api_key": "ENCRYPTED_VALUE:aBc123...infinilabs",
            "text_field": "content",
            "embedding_field": "content_embedding"
          }
        ]
      },
      "version": 1
    },
    "filter-pipeline": {
      "config": {
        "request_processors": [
          {
            "type": "filter_query",
            "tag": "public_filter",
            "description": "只返回公开数据",
            "query": {
              "term": {
                "visibility": "public"
              }
            },
            "ignore_failure": true
          }
        ]
      },
      "version": 2
    },
    "response-pipeline": {
      "config": {
        "response_processors": [
          {
            "type": "rename_field",
            "tag": "rename_fields",
            "field_mappings": [
              {
                "old_field": "title",
                "new_field": "headline"
              }
            ]
          }
        ]
      },
      "version": 1
    }
  }
}

响应字段说明 #

字段类型描述
countinteger搜索管道的总数量
search_pipelinesobject以管道 ID 为键的管道配置对象
search_pipelines.{id}object特定管道的配置
search_pipelines.{id}.configobject管道配置对象
search_pipelines.{id}.config.request_processorsarray请求处理器列表
search_pipelines.{id}.config.response_processorsarray响应处理器列表
search_pipelines.{id}.versioninteger管道版本号

空结果响应 #

当集群中没有搜索管道时:

{
  "count": 0,
  "search_pipelines": {}
}

使用场景 #

  1. 管道管理:查看集群中所有可用的搜索管道
  2. 配置审核:检查管道配置是否符合预期
  3. 问题排查:诊断搜索管道相关的问题
  4. 文档生成:生成管道配置文档

与相关 API 的区别 #

API功能
GET /_search/pipeline获取所有搜索管道
GET /_search/pipeline/{id}获取指定搜索管道
PUT /_search/pipeline/{id}创建或更新搜索管道
DELETE /_search/pipeline/{id}删除搜索管道

请求处理器类型 #

常见的请求处理器类型包括:

处理器功能
filter_query添加查询过滤条件
script使用脚本修改搜索请求
semantic_query_enricher语义查询增强

响应处理器类型 #

常见的响应处理器类型包括:

处理器功能
rename_field重命名字段
script使用脚本处理搜索结果
rerank结果重排序

注意事项 #

  1. 此 API 只支持 GET 方法
  2. API 密钥在返回时以加密格式显示(ENCRYPTED_VALUE...infinilabs
  3. local=true 时可能返回过时信息,但响应更快
  4. 管道配置按创建顺序返回
  5. 版本号每次更新管道时会递增

相关文档 #