将插件应用于 OpenSearch 查询 - Amazon Personalize
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将插件应用于 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 集群中的索引上对丰田品牌汽车的单个查询。

    对于 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管道指标来监控插件。有关更多信息,请参阅监控插件