

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将插件应用于 Amazon OpenSearch Service 查询
<a name="managed-apply-plugin"></a>

[创建管道](managed-opensearch-plugin-pipeline-example.md)后，就可以将 Amazon Personalize 搜索排名插件应用于查询。您可以将 Amazon Personalize 搜索排名插件应用于索引的所有查询和响应。您也可以将该插件应用于单个查询和响应。
+  您可以使用以下 Python 代码将搜索管道应用于索引。通过这种方法，所有使用此索引的搜索都使用该插件将个性化应用于搜索结果。

  ```
  import requests
  from requests_auth_aws_sigv4 import AWSSigV4
  
  domain_endpoint = 'domain endpoint'
  index = 'index name'
  url = f'{domain_endpoint}/{index}/_settings/'
  auth = AWSSigV4('es')
  headers = {'Content-Type': 'application/json'}
  body = {
      "index.search.default_pipeline": "pipeline name"
  }
  try:
      response = requests.put(url, auth=auth, json=body, headers=headers)
      print(response.text)
  except Exception as e:
      print(f"Error: {e}")
  ```
+ 您可以使用以下 Python 代码，将搜索管道应用于针对丰田品牌汽车的单个查询。

  更新代码，以指定域端点、OpenSearch Service 索引、管道名称和查询。对于 `user_id`，指定要获取搜索结果的用户的 ID。该用户必须出现在您用于创建 Amazon Personalize 解决方案版本的数据中。如果用户不在此类数据中，则 Amazon Personalize 会根据物品的受欢迎程度对其进行排名。

  对于 `context`，如果您使用上下文元数据，请提供用户的上下文元数据，例如其设备类型。`context` 字段为可选项。有关更多信息，请参阅 [利用上下文元数据提高建议的相关性](contextual-metadata.md)。

  ```
  import requests
  from requests_auth_aws_sigv4 import AWSSigV4
  
  domain_endpoint = 'domain endpoint'
  index = 'index name'
  url = f'{domain_endpoint}/{index}/_search/'
  
  auth = AWSSigV4('es')
  headers = {'Content-Type': 'application/json'}
  params = {"search_pipeline": "pipeline-name"}
  body = {
      "query": {
          "multi_match": {
              "query": "Toyota",
              "fields": ["BRAND"]
          }
      },
      "ext": {
          "personalize_request_parameters": {
              "user_id": "USER ID",
              "context": { "DEVICE" : "mobile phone" }
          }
      }
  }
  try:
      response = requests.post(url, auth=auth, params=params, json=body, headers=headers, verify=False)
      print(response)
  except Exception as e:
      print(f"Error: {e}")
  ```