

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Amazon OpenSearch Service 中建立管道
<a name="managed-opensearch-plugin-pipeline-example"></a>

[安裝 Amazon Personalize Search Ranking 外掛程式](open-search-install-managed.md)之後，您就可以透過建立 OpenSearch 搜尋管道來進行設定。

*搜尋管道*是一組請求和回應處理器，會依照您建立它們的順序依序執行。當您為外掛程式建立搜尋管道時，您可以指定`personalized_search_ranking`回應處理器。如需搜尋管道的相關資訊，請參閱[搜尋管道](https://opensearch.org/docs/latest/search-plugins/search-pipelines/index/)。

使用`personalized_search_ranking`回應處理器建立搜尋管道之後，您就可以開始將外掛程式套用至 OpenSearch 查詢。您可以將其套用至 OpenSearch 索引或個別 OpenSearch 查詢。如需詳細資訊，請參閱[套用外掛程式](managed-apply-plugin.md)。

您可以使用下列 Python 程式碼，在 OpenSearch Service 網域上使用`personalized_search_ranking`回應處理器建立搜尋管道。`domain endpoint` 將 取代為您的網域端點 URL。例如：`https://<domain name>.<AWS region>.es-staging.amazonaws.com`。如需每個`personalized_search_ranking`參數的完整說明，請參閱 [`personalized_search_ranking` 回應處理器的欄位](opensearch-plugin-pipeline-fields.md)。

```
import requests
from requests_auth_aws_sigv4 import AWSSigV4

domain_endpoint = 'domain endpoint'
pipeline_name = 'pipeline name'
url = f'{domain_endpoint}/_search/pipeline/{pipeline_name}'
auth = AWSSigV4('es')

headers = {'Content-Type': 'application/json'}

body = {
  "description": "A pipeline to apply custom re-ranking from Amazon Personalize",
  "response_processors": [
    {
      "personalized_search_ranking" : {
        "campaign_arn" : "Amazon Personalize Campaign ARN",
        "item_id_field" : "productId",
        "recipe" : "aws-personalized-ranking-v2",
        "weight" : "0.3",
        "tag" : "personalize-processor",
        "iam_role_arn": "Role ARN",
        "aws_region": "AWS region",
        "ignore_failure": true
    }
  ]
}
try:
    response = requests.put(url, auth=auth, json=body, headers=headers, verify=False)
    print(response.text)
except Exception as e:
    print(f"Error: {e}")
```