將外掛程式套用至 OpenSearch 查詢 - Amazon Personalize

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

將外掛程式套用至 OpenSearch 查詢

使用personalized_search_ranking回應處理器設定搜尋管道後,您就可以將 Amazon Personalize 搜尋排名外掛程式套用至 OpenSearch 查詢,並檢視重新排名的結果。

將插件應用於查 OpenSearch 詢時,可以通過獲取搜索管道的指標來監視插件。如需詳細資訊,請參閱 監控外掛程式

將插件應用於 Amazon OpenSearch 服務查詢

您可以將 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 服務索引、管線名稱和查詢。針對user_id,指定您要取得搜尋結果之使用者的 ID。此使用者必須位於您用來建立 Amazon Personalize 解決方案版本的資料中。如果用戶不在場,Amazon Personalize 化會根據其受歡迎程度對項目進行排名。

    對於context,如果您使用關聯式中繼資料,請提供使用者的上下文中繼資料,例如其裝置類型。此 context 欄位為選用。如需詳細資訊,請參閱 透過上下文中繼資料增加建議

    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}")

將外掛程式套用至開放原始碼中的查詢 OpenSearch

您可以將 Amazon Personalize 搜尋排名外掛程式套用至索 OpenSearch 引的所有查詢和回應。您還可以將插件應用於單個 OpenSearch 查詢和響應。

  • 下列 curl 命令會將搜尋管線套用至本機執行的開放原始碼 OpenSearch 叢集中的索 OpenSearch 引。透過這種方法,此索引中的所有搜尋都會使用外掛程式將個人化套用至搜尋結果。

    curl -XGET "https://localhost:9200/index/_settings" -ku 'admin:admin' --insecure -H 'Content-Type: application/json' -d' { "index.search.default_pipeline": "pipeline-name" } '
  • 以下 curl 命令將搜索管道應用於在本地運行的開源 OpenSearch 集群中的索引上的 Toyota 品牌汽車的單個查詢。

    針對user_id,指定您要取得搜尋結果之使用者的 ID。此使用者必須位於您用來建立 Amazon Personalize 解決方案版本的資料中。如果用戶不在場,Amazon Personalize 化會根據其受歡迎程度對項目進行排名。對於context,如果您使用關聯式中繼資料,請提供使用者的上下文中繼資料,例如其裝置類型。此 context 欄位為選用。如需詳細資訊,請參閱 透過上下文中繼資料增加建議

    curl -XGET "http://localhost:9200/index/_search?search_pipeline=pipeline-name" -ku 'admin:admin' --insecure -H 'Content-Type: application/json' -d' { "query": { "multi_match": { "query": "Toyota", "fields": ["BRAND"] } }, "ext": { "personalize_request_parameters": { "user_id": "USER ID", "context": { "DEVICE": "mobile phone" } } } } '

若要瞭解結果的重新排名方式,您可以使用 OpenSearch 儀表板將 OpenSearch 結果與外掛程式重新排名的結果進行比較。如需詳細資訊,請參閱 將 OpenSearch 結果與插件的結果進行比較

將插件應用於查 OpenSearch 詢時,可以通過獲取 OpenSearch管道的指標來監視插件。如需詳細資訊,請參閱 監控外掛程式