搜索处理器 #
搜索处理器可分为以下几种类型:
搜索请求处理器 #
搜索请求处理器用于拦截搜索请求(包括查询语句和请求中传递的元数据),对其进行操作或处理,然后将处理后的请求提交至索引。
下表列出了所有支持的搜索请求处理器。
处理器 | 描述 | 最早可用版本 |
---|---|---|
filter_query | 添加一个过滤查询,用于过滤搜索请求。 | 1.14.0 |
script | 添加一个脚本,在新索引的文档上执行。 | 1.14.0 |
semantic_query_enricher | 在索引或字段级别设置神经搜索和神经稀疏搜索的默认模型。 | 1.14.0 |
搜索响应处理器 #
搜索响应处理器用于拦截搜索响应和搜索请求(包括查询、结果及请求中的元数据),对其进行操作或处理,然后返回处理后的搜索响应。
下表列出了所有支持的搜索响应处理器。
处理器 | 描述 | 最早可用版本 |
---|---|---|
rename_field | 重命名一个已存在的字段。 | 1.14.0 |
搜索阶段结果处理器 #
搜索阶段结果处理器在协调节点级别运行,位于两个搜索阶段之间。它会拦截一个搜索阶段返回的结果,并在将其传递给下一阶段之前进行转换。
下表列出了所有支持的搜索阶段结果处理器。
处理器 | 描述 | 最早可用版本 |
---|---|---|
hybrid-ranker-processor | 拦截查询阶段的结果,对文档评分进行归一化和合并,然后将文档传递至获取(fetch)阶段。 | 1.14.1 |
查看可用的处理器类型 #
您可以使用 节点搜索管道 API 来查看当前可用的处理器类型:
GET /_nodes/search_pipelines
响应中包含 search_pipelines
对象,列出当前可用的请求和响应处理器:
响应示例
{
"_nodes": {
"total": 1,
"successful": 1,
"failed": 0
},
"cluster_name": "easy-leader",
"nodes": {
"1xzPLe7jSheptsZfLgDcZQ": {
"name": "node-1",
"transport_address": "127.0.0.1:9302",
"host": "localhost",
"ip": "127.0.0.1",
"version": "7.10.2",
"build_flavor": "default",
"build_type": "tar",
"build_hash": "ac7bdb31a4b56faa7726a6d9898d9d2171725051",
"roles": [
"data",
"ingest",
"master",
"remote_cluster_client",
"search"
],
"search_pipelines": {
"phase_results_processors": [
{
"type": "hybrid-ranker-processor"
}
],
"request_processors": [
{
"type": "filter_query"
},
{
"type": "script"
},
{
"type": "semantic_query_enricher"
}
],
"response_processors": [
{
"type": "hybrid_score_explanation"
},
{
"type": "rename_field"
}
]
}
}
}
}