搜索处理器

搜索处理器可分为以下类型:

搜索请求处理器

搜索请求处理器拦截搜索请求(请求中传递的查询和元数据),对搜索请求执行操作,并将搜索请求提交给索引。

下表列出了所有受支持的搜索请求处理器。

处理器 描述
filter_query 添加一个用于过滤请求的过滤查询。
ml_inference 调用已注册的机器学习(ML)模型以重写查询。
neural_query_enricher 在索引或字段级别为神经搜索和神经稀疏搜索设置默认模型。
neural_sparse_two_phase_processor 加速神经稀疏查询。
oversample 增加搜索请求的 size 参数,并将原始值存储在管道状态中。
script 添加一个在新索引文档上运行的脚本。

搜索响应处理器

搜索响应处理器拦截搜索响应和搜索请求(请求中传递的查询、结果和元数据),对搜索响应执行操作,并返回搜索响应。

下表列出了所有受支持的搜索响应处理器。

处理器 描述 最早可用版本
collapse 基于字段值对搜索命中项进行去重,类似于搜索请求中的 collapse
hybrid_score_explanation 当启用 explain 参数时,向搜索结果添加详细的评分信息,提供有关混合查询中分数归一化、组合技术和单个分数计算的信息。
ml_inference 调用已注册的机器学习(ML)模型,以便将模型输出作为额外的搜索响应字段。
personalize_search_ranking 使用 Amazon Personalize 对搜索结果进行重排序(需要设置 Amazon Personalize 服务)。
rename_field 重命名字段。
rerank 使用交叉编码器模型对搜索结果进行重排序。
retrieval_augmented_generation 用于对话式搜索中的检索增强生成(RAG)。
sort 按升序或降序对项目数组进行排序。
split 根据指定的分隔符将字符串字段拆分为子字符串数组。
truncate_hits 在达到指定的目标数量后丢弃搜索命中项。可以撤销 oversample 请求处理器的影响。

搜索阶段结果处理器

搜索阶段结果处理器在协调节点级别上运行于搜索阶段之间。它拦截从一个搜索阶段检索到的结果,并在将其传递给下一个搜索阶段之前进行转换。

下表列出了所有受支持的搜索阶段结果处理器。

处理器 描述 最早可用版本
normalization-processor 拦截查询阶段结果,并在将文档传递给获取阶段之前对文档分数进行归一化和组合。 2.10

查看可用的处理器类型

您可以使用节点搜索管道 API 来查看可用的处理器类型:

GET /_nodes/search_pipelines

响应包含 search_pipelines 对象,其中列出了可用的请求和响应处理器:

响应
{
  "_nodes" : {
    "total" : 1,
    "successful" : 1,
    "failed" : 0
  },
  "cluster_name" : "runTask",
  "nodes" : {
    "36FHvCwHT6Srbm2ZniEPhA" : {
      "name" : "runTask-0",
      "transport_address" : "127.0.0.1:9300",
      "host" : "127.0.0.1",
      "ip" : "127.0.0.1",
      "version" : "3.0.0",
      "build_type" : "tar",
      "build_hash" : "unknown",
      "roles" : [
        "cluster_manager",
        "data",
        "ingest",
        "remote_cluster_client"
      ],
      "attributes" : {
        "testattr" : "test",
        "shard_indexing_pressure_enabled" : "true"
      },
      "search_pipelines" : {
        "request_processors" : [
          {
            "type" : "filter_query"
          },
          {
            "type" : "script"
          }
        ],
        "response_processors" : [
          {
            "type" : "rename_field"
          }
        ]
      }
    }
  }
}

除了 UDB-SX 提供的处理器外,插件也可能提供额外的处理器。