Link Search Menu Expand Document Documentation Menu

搜索管道

您可以使用搜索管道来构建新的或重用现有的结果重排器、查询重写器以及其他对查询或结果进行操作的组件。搜索管道使您更容易在 OpenSearch 中处理搜索查询和搜索结果。将部分应用程序功能移至 OpenSearch 搜索管道可降低应用程序的整体复杂性。作为搜索管道的一部分,您可以指定一个执行模块化任务的处理器列表。然后,您可以轻松添加或重新排列这些处理器,以自定义应用程序的搜索结果。

术语

以下是搜索管道术语列表

  • 搜索请求处理器:一个组件,它拦截搜索请求(请求中传递的查询和元数据),对搜索请求执行操作,并返回搜索请求。
  • 搜索响应处理器:一个组件,它拦截搜索响应和搜索请求(请求中传递的查询、结果和元数据),对搜索响应执行操作,并返回搜索响应。
  • 搜索阶段结果处理器:一个在协调节点级别,在搜索阶段之间运行的组件。搜索阶段结果处理器拦截从一个搜索阶段检索到的结果,并在将其传递给下一个搜索阶段之前对其进行转换。
  • 处理器:可以是搜索请求处理器或搜索响应处理器。
  • 搜索管道:集成到 OpenSearch 中的按序排列的处理器列表。该管道拦截查询,对查询执行处理,将其发送到 OpenSearch,拦截结果,对结果执行处理,然后将其返回给调用应用程序,如下图所示。

Search processor diagram

管道的请求和响应处理都在协调节点上执行,因此没有分片级处理。

处理器

要了解有关可用搜索处理器的更多信息,请参阅搜索处理器

示例

要创建搜索管道,请向搜索管道端点发送请求,指定一个按顺序应用的处理器列表

PUT /_search/pipeline/my_pipeline 
{
  "request_processors": [
    {
      "filter_query" : {
        "tag" : "tag1",
        "description" : "This processor is going to restrict to publicly visible documents",
        "query" : {
          "term": {
            "visibility": "public"
          }
        }
      }
    }
  ],
  "response_processors": [
    {
      "rename_field": {
        "field": "message",
        "target_field": "notification"
      }
    }
  ]
}

有关创建和更新搜索管道的更多信息,请参阅创建搜索管道

要将管道与查询一起使用,请在 search_pipeline 查询参数中指定管道名称

GET /my_index/_search?search_pipeline=my_pipeline

或者,您可以将临时管道与请求一起使用,或为索引设置默认管道。要了解更多信息,请参阅使用搜索管道

要了解有关检索现有搜索管道详细信息的信息,请参阅检索搜索管道

搜索管道指标

有关检索搜索管道统计信息的信息,请参阅搜索管道指标

剩余 350 字符

有问题?

想贡献?