Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Vergleich personalisierter Amazon OpenSearch Service-Ergebnisse mit Ergebnissen ohne Personalisierung
Das Amazon Personalize Search Ranking-Plugin ordnet die Suchergebnisse sowohl auf der Grundlage des Rankings von Amazon Personalize als auch des Rankings von neu an. OpenSearch Wie das Plugin die Ergebnisse neu einstuft, hängt davon ab, wie Sie den personalized_search_ranking
Antwortprozessor in Ihren Pipelines konfiguriert haben.
Um zu verstehen, wie die Ergebnisse eingestuft werden, können Sie Abfragen mit und ohne Personalisierung ausführen und die Ergebnisse vergleichen. Sie können den folgenden Python-Code verwenden, um zwei verschiedene Abfragen auszuführen und die Ergebnisse in zwei JSON Dateien auszugeben. Die erste Methode führt eine Abfrage aus, die das Plugin verwendet, um die Ergebnisse neu zu ordnen. Die zweite führt eine Methode aus, die Ergebnisse ohne Personalisierung generiert.
import json import requests from requests_auth_aws_sigv4 import AWSSigV4 # Returns re-ranked OpenSearch results using the Amazon Personalize Search Ranking plugin. def get_personalized_results(pipeline_name): url = f'{domain}/{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": "1" } } } try: response = requests.post(url, auth=auth, params=params, json=body, headers=headers, verify=False) except Exception as e: return f"Error: {e}" return response.text # Returns OpenSearch results without personalization. def get_opensearch_results(): url = f'{domain}/{index}/_search/' auth = AWSSigV4('es') headers = {'Content-Type': 'application/json'} body = { "query": { "multi_match": { "query": "Toyota", "fields": ["BRAND"] } } } try: response = requests.post(url, auth=auth, json=body, headers=headers, verify=False) except Exception as e: return f"Error: {e}" return response.text def print_results(file_name, results): results_file = open(file_name, 'w') results_file.write(json.dumps(results, indent=4)) results_file.close() # specify domain endpoint domain = "
DOMAIN_ENDPOINT
" # specify the region where you created your Amazon Personalize resources and Amazon OpenSearch domain aws_region = "REGION
" # specify the name of the pipeline that uses the Amazon Personalize plugin pipeline_name = "PIPELINE_NAME
" # specify your Amazon OpenSearch index index = "INDEX
" # specify names for json files for comparison personalized_results_file = "personalized_results.json" opensearch_results_file = "opensearch_results.json" # get personalized results personalized_results = json.loads(get_personalized_results(pipeline_name)) # get OpenSearch results without personalization opensearch_results = json.loads(get_opensearch_results()) # print results to files print_results(personalized_results_file, personalized_results) print_results(opensearch_results_file, opensearch_results)