

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Personalización de los resultados de búsqueda desde OpenSearch
<a name="personalize-opensearch"></a>

Puede utilizar Amazon Personalize para personalizar los resultados de OpenSearch de código abierto o Amazon OpenSearch Service para sus usuarios. 

 [OpenSearch](https://opensearch.org/docs/latest) es un servicio de búsqueda autogestionado de código abierto basado en la licencia Apache 2.0. [Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html) es un servicio administrado que facilita la implementación, la operación y el escalado de recursos de OpenSearch en la nube de AWS. Cuando utiliza Amazon OpenSearch Service, OpenSearch recupera y clasifica los resultados. 

Al clasificar los resultados, OpenSearch utiliza un marco de clasificación probabilístico llamado [BM-25](https://en.wikipedia.org/wiki/Okapi_BM25) para calcular las puntuaciones de relevancia. Si una palabra clave distintiva aparece con más frecuencia en un documento, BM-25 asigna una puntuación de relevancia más alta a ese documento. La clasificación de OpenSearch no tiene en cuenta el comportamiento de los usuarios, como los datos de clics. 

 Cuando utiliza Amazon Personalize con OpenSearch, Amazon Personalize cambia el orden de los resultados de OpenSearch en función del comportamiento anterior del usuario, los metadatos sobre los elementos y los metadatos sobre el usuario. Luego, OpenSearch incorpora la reclasificación antes de devolver la respuesta de búsqueda a su aplicación. Es usted quien controla el peso que OpenSearch da a la clasificación de Amazon Personalize al aplicarla a los resultados de OpenSearch. 

 Con esta nueva clasificación, los resultados pueden ser más atractivos y relevantes para los intereses del usuario. Esto puede provocar un aumento en la tasa de clics y la tasa de conversión de su aplicación. Para ver un ejemplo de caso de uso que describe cómo la búsqueda personalizada puede mejorar los resultados de una aplicación de comercio electrónico, consulte [Ejemplo de casos de uso](#opensearch-use-case-example). 

 Antes de empezar a personalizar los resultados de OpenSearch, revise los requisitos que se indican en [Requisitos del complemento Search Ranking de Amazon Personalize](plugin-requirements.md). 

**Topics**
+ [Ejemplo de casos de uso](#opensearch-use-case-example)
+ [Funcionamiento del complemento Search Ranking de Amazon Personalize](#opensearch-plugin-how-it-works)
+ [Información adicional](#open-search-plugin-additional-info)
+ [Requisitos del complemento Search Ranking de Amazon Personalize](plugin-requirements.md)
+ [Personalización de los resultados de Amazon OpenSearch Service con Amazon Personalize](opensearch-service.md)
+ [Personalización de los resultados de Open Search de código abierto con Amazon Personalize](opensearch-open-source.md)
+ [Campos para el procesador de respuestas `personalized_search_ranking`](opensearch-plugin-pipeline-fields.md)
+ [Ejemplo de métricas de canalización](monitor-response.md)

## Ejemplo de casos de uso
<a name="opensearch-use-case-example"></a>

Cuando utiliza Amazon Personalize para volver a clasificar los resultados de OpenSearch, los resultados de la búsqueda pueden ser más relevantes para sus usuarios. Por ejemplo, es posible que tenga una aplicación de comercio electrónico que vende automóviles. Si el usuario introduce una consulta sobre automóviles Toyota y usted no personaliza los resultados, OpenSearch mostrará una lista de automóviles fabricados por Toyota basada en las palabras clave de sus datos. Esta lista se clasificaría en el mismo orden para todos los usuarios. 

Sin embargo, si utiliza Amazon Personalize para personalizar los resultados, OpenSearch vuelve a clasificar estos coches en orden de relevancia para el usuario específico en función de su comportamiento, por ejemplo, sus clics. El coche en el que es más probable que el usuario haga clic aparece en primer lugar. 

Cuando personaliza los resultados de OpenSearch, controla el peso (énfasis) que OpenSearch otorga a la clasificación de Amazon Personalize. Siguiendo con este ejemplo, si un usuario busca un tipo específico de automóvil de un año específico (como un Toyota Prius de 2008), es posible que desee poner más énfasis en la clasificación original de OpenSearch. 

Sin embargo, en el caso de consultas más genéricas que generen una amplia gama de resultados (como una búsqueda de todos los vehículos Toyota), podría hacer mucho hincapié en la personalización. De esta forma, los vehículos de la parte superior de la lista son más relevantes para ese usuario en particular. 

## Funcionamiento del complemento Search Ranking de Amazon Personalize
<a name="opensearch-plugin-how-it-works"></a>

En el siguiente diagrama se muestra cómo funciona el complemento Search Ranking de Amazon Personalize.

![\[Muestra cómo funciona el complemento cuando lo usa para personalizar los resultados de OpenSearch.\]](http://docs.aws.amazon.com/es_es/personalize/latest/dg/images/opensearch-plugin-how-it-works.png)


1. Envía la consulta de su cliente a su dominio de OpenSearch Service o a su clúster de OpenSearch de código abierto.

1.  OpenSearch envía la respuesta a la consulta (lista de elementos relevantes para la consulta) y el ID del usuario al complemento Search Ranking de Amazon Personalize. 

1. El complemento envía los elementos y el usuario en respuesta a su campaña de Amazon Personalize para clasificarlos. Utiliza los valores del nombre de recurso de Amazon (ARN) de la receta y la campaña en su canalización de búsqueda para obtener una clasificación personalizada para el usuario. Utiliza la operación de la API GetPersonalizedRanking para hacer recomendaciones. En la solicitud, pasa el userId del usuario que realiza la consulta y los elementos devueltos por la consulta de OpenSearch en `inputList`. 

1.  Amazon Personalize devuelve los resultados reclasificados al complemento. 

1. El complemento reorganiza y devuelve los resultados de la búsqueda a su dominio de OpenSearch Service o al clúster de OpenSearch de código abierto. Cambia la clasificación de los resultados en función de la respuesta de su campaña de Amazon Personalize y del énfasis en la personalización que especifique durante la configuración. 

1. Su clúster OpenSearch de código abierto o su dominio OpenSearch Service devuelve los resultados finales a su aplicación. 

## Información adicional
<a name="open-search-plugin-additional-info"></a>

En los siguientes recursos se proporciona información adicional acerca del uso de OpenSearch.
+ Para obtener más información acerca de cómo comenzar a usar OpenSearch de código abierto, consulte [Inicio rápido](https://opensearch.org/docs/quickstart).
+ Para obtener información sobre cómo empezar a usar OpenSearch Service, consulte [Introducción a Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/gsg.html) en la *Guía para desarrolladores de Amazon OpenSearch Service*.
+ Para obtener información sobre las recetas Personalized-Ranking en Amazon Personalize, consulte [Receta Personalized-Ranking-v2](native-recipe-personalized-ranking-v2.md) o [Receta Personalized-Ranking](native-recipe-search.md).

# Requisitos del complemento Search Ranking de Amazon Personalize
<a name="plugin-requirements"></a>

Antes de empezar a personalizar los resultados de OpenSearch, tenga en cuenta las siguientes directrices y requisitos para el complemento Search Ranking de Amazon Personalize:
+ Debe usar la versión 2.9.0 o una posterior de OpenSearch. Si utiliza Amazon OpenSearch Service, su dominio debe usar la versión 2.9 o posterior.
+ Si aún no lo ha hecho, complete las instrucciones de [Configuración de permisos](aws-personalize-set-up-permissions.md) para conceder a sus usuarios permiso para acceder a Amazon Personalize y a Amazon Personalize para acceder a sus recursos en Amazon Personalize. 
+ Debe poder acceder a los recursos de Amazon Personalize desde su dominio de OpenSearch Service o desde un clúster de OpenSearch de código abierto. 
  +  Para obtener información sobre la concesión de acceso a un dominio de OpenSearch Service, consulte [Configuración de los permisos OpenSearch de Amazon Service](opensearch-granting-access-managed.md). 
  + Para obtener información sobre la concesión de acceso a un clúster de OpenSearch, consulte [Configuración de OpenSearch permisos de código abierto](opensearch-granting-access.md).
+  Solo puede usar recursos personalizados de Amazon Personalize. Si creó un grupo de conjuntos de datos de dominio, aún puede agregar recursos personalizados. 
+ Solo puede usar las recetas personalizadas [Receta Personalized-Ranking-v2](native-recipe-personalized-ranking-v2.md) o [Receta Personalized-Ranking](native-recipe-search.md).
+ Debe crear un conjunto de datos de interacciones de elementos en Amazon Personalize. Los conjuntos de datos de elementos y usuarios son opcionales.
+ No puede aplicar filtros de Amazon Personalize cuando utilice el complemento Search Ranking de Amazon Personalize.
+ De forma predeterminada, el complemento asume que el valor `_id` de un documento indexado en OpenSearch coincide con el itemId de sus datos de Amazon Personalize. Si sus datos de OpenSearch utilizan un campo diferente que se corresponde con sus itemIds de Amazon Personalize, debe especificar el nombre del campo al configurar el complemento.
+ El userId que utilice para un usuario que realice una consulta debe coincidir con su userId en los datos que importe a Amazon Personalize.
+ El complemento vuelve a clasificar solo los 500 resultados de búsqueda principales de OpenSearch. Los elementos restantes no se reclasifican y terminan en la parte inferior de la lista.

# Personalización de los resultados de Amazon OpenSearch Service con Amazon Personalize
<a name="opensearch-service"></a>

Para personalizar OpenSearch los resultados de Amazon OpenSearch Service, haz lo siguiente:

1.  **Configure Amazon Personalize**: si aún no lo ha hecho, complete los pasos de [Configuración de Amazon Personalize](setup.md) para configurar sus credenciales y configurar los permisos para Amazon Personalize. No necesitas configurar el AWS SDKs para personalizar OpenSearch los resultados. 

1.  **Complete el flujo de trabajo de Amazon Personalize**: complete el flujo de trabajo de Amazon Personalize para importar datos, crear una solución con la fórmula Personalized-Ranking-v 2 o la receta de clasificación personalizada, preparar una versión de solución personalizada e implementarla en una campaña. Debe crear un conjunto de datos de interacciones de elementos. Un conjunto de datos de elementos y usuarios son opcionales. Para obtener más información, consulte [Detalles del flujo de trabajo de Amazon Personalize](personalize-workflow.md).

1.  **Configurar permisos**: configure los permisos para poder acceder a los recursos de Amazon Personalize desde su dominio de OpenSearch servicio. Para obtener más información, consulte [Configuración de permisos](opensearch-granting-access-managed.md). 

1.  **Instale el complemento Search Ranking de Amazon Personalize**: este complemento gestiona la comunicación con Amazon Personalize y la reclasificación de los resultados. Para obtener información sobre la instalación del complemento en un dominio OpenSearch de servicio, consulte[Instalación del complemento](open-search-install-managed.md).

1.  **Configure el complemento Search Ranking de Amazon Personalize**: para configurar el complemento, debe crear canalizaciones de búsqueda. Las *canalizaciones de búsqueda* son conjuntos de procesadores de solicitudes y respuestas. Cuando crea una canalización para el complemento, especifica sus recursos de Amazon Personalize en un procesador de respuestas `personalized_search_ranking`. También puede configurar el peso que el complemento otorga a los resultados de Amazon Personalize cuando cambia la clasificación de los resultados. Para obtener más información, consulte [Creación de una canalización](managed-opensearch-plugin-pipeline-example.md).

1.  **Aplique el complemento Amazon Personalize Search Ranking a OpenSearch las consultas**: después de configurar un proceso de búsqueda con un procesador de `personalized_search_ranking` respuestas, estará listo para aplicar el complemento Amazon Personalize Search Ranking a sus OpenSearch consultas y ver los resultados reclasificados. Para obtener información sobre cómo aplicar el complemento a las consultas OpenSearch del Servicio, consulte[Aplicación del complemento](managed-apply-plugin.md).

1.  **Comparar resultados**: el complemento Amazon Personalize Search Ranking reclasifica los resultados de búsqueda en la respuesta a la OpenSearch consulta. Considera tanto la clasificación de Amazon Personalize como la clasificación de OpenSearch. Para entender cómo se reclasifican los resultados, puede comparar los resultados de las consultas que utilizan la personalización y las que no. Para obtener información sobre cómo comparar los resultados con los OpenSearch del Servicio, consulte[Comparación de resultados](managed-comparing-results.md).

1.  **Supervise el complemento Search Ranking de Amazon Personalize**: al aplicar el complemento Search Ranking de Amazon Personalize a las consultas de búsqueda, puede supervisar el complemento obteniendo métricas de sus canalizaciones de búsqueda. Para obtener información sobre la supervisión del complemento con el OpenSearch Servicio, consulte[Supervisión del complemento](managed-monitor.md).

**Topics**
+ [Configuración de los permisos OpenSearch de Amazon Service](opensearch-granting-access-managed.md)
+ [Instalación del complemento Search Ranking de Amazon Personalize en un dominio de OpenSearch Service](open-search-install-managed.md)
+ [Creación de una canalización en Amazon OpenSearch Service](managed-opensearch-plugin-pipeline-example.md)
+ [Aplicación del complemento a las consultas de Amazon OpenSearch Service](managed-apply-plugin.md)
+ [Comparación de los resultados de Amazon OpenSearch Service personalizados con los resultados sin personalización](managed-comparing-results.md)
+ [Supervisión del complemento con Amazon OpenSearch Service](managed-monitor.md)

# Configuración de los permisos OpenSearch de Amazon Service
<a name="opensearch-granting-access-managed"></a>

Si utilizas Amazon OpenSearch Service, debes poder acceder a tus recursos de Amazon Personalize desde tu dominio de OpenSearch servicio. 

**Configuración de permisos de**

1. En función de si los recursos están en la misma cuenta o en cuentas diferentes, cree uno o más roles de servicio de IAM con permiso para acceder a los recursos.
   +  Si sus recursos de OpenSearch Service y Amazon Personalize están en la misma cuenta, crea un rol de servicio de IAM para OpenSearch Service y le concede permiso para obtener una clasificación personalizada de su campaña de Amazon Personalize. Para obtener más información, consulte [Configuración de permisos cuando los recursos están en la misma cuenta](service-role-managed.md).
   + Si sus recursos OpenSearch de Service y Amazon Personalize están en cuentas distintas, debe crear dos funciones de servicio de IAM. Usted crea uno en la cuenta con sus recursos de OpenSearch servicio y le otorga acceso a dichos OpenSearch recursos. Y cree otro en la cuenta con los recursos de Amazon Personalize y concédale permiso para obtener una clasificación personalizada de la campaña de Amazon Personalize. Para obtener más información, consulte [Configuración de permisos cuando los recursos están en cuentas distintas](configuring-multiple-accounts.md). 

1. Concede al usuario o rol que accede a tu dominio de OpenSearch servicio `PassRole` permisos para el rol de servicio de IAM que creaste para el OpenSearch Servicio. Para obtener más información, consulte [Configuración de la seguridad OpenSearch del dominio de Amazon Service](domain-user-managed.md).

Después de configurar los permisos, podrá instalar el complemento en el dominio. Para obtener más información, consulte [Instalación del complemento](open-search-install-managed.md).

**Topics**
+ [Configuración de permisos cuando los recursos están en la misma cuenta](service-role-managed.md)
+ [Configuración de permisos cuando los recursos están en cuentas distintas](configuring-multiple-accounts.md)
+ [Configuración de la seguridad OpenSearch del dominio de Amazon Service](domain-user-managed.md)

# Configuración de permisos cuando los recursos están en la misma cuenta
<a name="service-role-managed"></a>

Si sus recursos de OpenSearch Service y Amazon Personalize están en la misma cuenta, debe crear un rol de servicio de IAM para OpenSearch Service. Este rol debe tener permiso para obtener una clasificación personalizada de su campaña de Amazon Personalize. Para conceder a su función de servicio de OpenSearch servicio permiso para obtener una clasificación personalizada de su campaña Amazon Personalize, haga lo siguiente:
+ La política de confianza del rol debe conceder `AssumeRole` permisos para el OpenSearch Servicio. Para ver una política de ejemplo, consulte [Política de confianza de ejemplo](#opensearch-granting-access-managed-trust-policy). 
+ El rol debe tener permiso para obtener una clasificación personalizada de su campaña de Amazon Personalize. Para ver una política de ejemplo, consulte [Ejemplo de política de permisos](#opensearch-granting-access-managed-permissions-policy). 

Para obtener información sobre la creación de un rol de IAM, consulte [Creación de roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) en la *Guía del usuario de IAM*. Para obtener información sobre cómo asociar una política de IAM a rol, consulte [Adición y eliminación de permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) en la * Guía del usuario de IAM*.

Después de crear un rol de servicio de IAM para el OpenSearch servicio, debes conceder al usuario o rol que accede a tu dominio de OpenSearch servicio `PassRole` permisos para el rol de OpenSearch servicio de servicio. Para obtener más información, consulte [Configuración de la seguridad OpenSearch del dominio de Amazon Service](domain-user-managed.md).

**Topics**
+ [Política de confianza de ejemplo](#opensearch-granting-access-managed-trust-policy)
+ [Ejemplo de política de permisos](#opensearch-granting-access-managed-permissions-policy)

## Política de confianza de ejemplo
<a name="opensearch-granting-access-managed-trust-policy"></a>

El siguiente ejemplo de política de confianza concede `AssumeRole` permisos para el OpenSearch Servicio. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "",
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Principal": {
            "Service": [
                "es.amazonaws.com"
            ]
        }
    }]
}
```

------

## Ejemplo de política de permisos
<a name="opensearch-granting-access-managed-permissions-policy"></a>

El siguiente ejemplo de política concede al rol los permisos mínimos para obtener una clasificación personalizada de su campaña de Amazon Personalize. Para `Campaign ARN`, especifique el nombre de recurso de Amazon (ARN) de la campaña de Amazon Personalize. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "personalize:GetPersonalizedRanking"
            ],
            "Resource": "arn:aws:personalize:us-east-1:111122223333:campaign/YourResourceId"
        }
    ]
}
```

------

# Configuración de permisos cuando los recursos están en cuentas distintas
<a name="configuring-multiple-accounts"></a>

Si sus recursos de OpenSearch Service y Amazon Personalize están en cuentas distintas, debe crear un rol de IAM en cada cuenta y conceder al rol acceso a los recursos de la cuenta. 

**Configuración de permisos para varias cuentas**

1. En la cuenta en la que se encuentra la campaña de Amazon Personalize, cree un rol de IAM con permiso para obtener una clasificación personalizada de la campaña de Amazon Personalize. Al configurar el complemento, especifique el ARN de este rol en el parámetro `external_account_iam_role_arn` del procesador de respuestas `personalized_search_ranking`. Para obtener más información, consulte [Creación de una canalización en Amazon OpenSearch Service](managed-opensearch-plugin-pipeline-example.md). 

   Para ver una política de ejemplo, consulte [Ejemplo de política de permisos](service-role-managed.md#opensearch-granting-access-managed-permissions-policy).

1. En la cuenta en la que se encuentre su dominio de OpenSearch servicio, cree un rol con una política de confianza que otorgue `AssumeRole` permisos OpenSearch de servicio. Al configurar el complemento, especifique el ARN de este rol en el parámetro `iam_role_arn` del procesador de respuestas `personalized_search_ranking`. Para obtener más información, consulte [Creación de una canalización en Amazon OpenSearch Service](managed-opensearch-plugin-pipeline-example.md). 

   Para ver una política de ejemplo, consulte [Política de confianza de ejemplo](service-role-managed.md#opensearch-granting-access-managed-trust-policy). 

1. Modifique cada rol para conceder `AssumeRole` permisos al otro rol. Por ejemplo, para el rol que tiene acceso a sus recursos de Amazon Personalize, su política de IAM otorgaría al rol en la cuenta con el dominio de OpenSearch servicio los permisos de rol de la siguiente manera: 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Sid": "",
           "Effect": "Allow",
           "Action": "sts:AssumeRole",
           "Resource": "arn:aws:iam::111122223333:role/roleName"
            
       }]
   }
   ```

------

1. En la cuenta en la que se encuentre su dominio de OpenSearch servicio, otorgue al usuario o rol que accede a su dominio de OpenSearch servicio `PassRole` permisos para el rol de OpenSearch servicio que acaba de crear. Para obtener más información, consulte [Configuración de la seguridad OpenSearch del dominio de Amazon Service](domain-user-managed.md).

# Configuración de la seguridad OpenSearch del dominio de Amazon Service
<a name="domain-user-managed"></a>

Para usar el complemento con el OpenSearch Servicio, el usuario o rol que accede a tu dominio debe tener `PassRole` permisos para el [rol de servicio de IAM del OpenSearch Servicio](service-role-managed.md) que acabas de crear. Además, el usuario o rol deben tener permiso para realizar las acciones `es:ESHttpGet` y `es:ESHttpPut`.

Para obtener información sobre cómo configurar el acceso al OpenSearch Servicio, consulte [Seguridad en Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/security.html) en la *Guía para desarrolladores de Amazon OpenSearch Service*. Para ver ejemplos de políticas, consulte [Ejemplos de políticas para el usuario o rol del OpenSearch servicio](#opensearch-domain-user-policy-examples). 

## Ejemplos de políticas para el usuario o rol del OpenSearch servicio
<a name="opensearch-domain-user-policy-examples"></a>

El siguiente ejemplo de política de IAM concede a un usuario o rol `PassRole` permisos para el rol de servicio de IAM que creó para OpenSearch Service en el que. [Configuración de permisos cuando los recursos están en la misma cuenta](service-role-managed.md)

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/aws-service-role/opensearchservice.amazonaws.com/AWSServiceRoleForAmazonOpenSearchService"
        }
    ]
}
```

------

La siguiente política de IAM concede los permisos mínimos para crear canalizaciones y consultas de búsqueda con Service. OpenSearch 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "es:ESHttpGet",
                "es:ESHttpPut"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:ResourceTag/environment": [
                        "production"
                    ]
                }
            }
        }
    ]
}
```

------

# Instalación del complemento Search Ranking de Amazon Personalize en un dominio de OpenSearch Service
<a name="open-search-install-managed"></a>

Tras completar el flujo de trabajo de Amazon Personalize y cumplir los requisitos que se indican en [Requisitos del complemento](plugin-requirements.md), estará listo para instalar el complemento en el dominio.

 Para usar el complemento, debe asociar `Amazon_Personalize_Search_Ranking_Plugin` al dominio. El complemento está preinstalado y no es necesario importarlo desde Amazon S3. El complemento se asocia de la misma manera que se asocia un paquete de OpenSearch Service. Para obtener información sobre cómo asociar un paquete de OpenSearch Service, consulte [Paquetes personalizados para Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/custom-packages.html#custom-packages-assoc). 

Después de asociar el complemento al dominio, estará listo para configurarlo. Para configurarlo, cree una canalización de búsqueda y especifique un procesador de respuestas `personalized_search_ranking`. Para obtener más información, consulte [Creación de una canalización](managed-opensearch-plugin-pipeline-example.md).

## Información adicional sobre dominios de Amazon OpenSearch Service
<a name="opensearch-service-additional-information"></a>

En los siguientes recursos se proporciona información adicional sobre el uso del dominio de Amazon OpenSearch Service. 
+ Para ver un tutorial conciso sobre cómo configurar un dominio de prueba, consulte el [paso 1: Crear un dominio de Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/gsg.html#gsgcreate-domain) en la sección “Introducción” de la *Guía para desarrolladores de Amazon OpenSearch Service*.
+ Para obtener pasos más detallados sobre la configuración de los dominios de OpenSearch Service, consulte [Creación y administración de dominios de Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html).
+ Para ver un tutorial conciso sobre cómo subir una pequeña cantidad de datos de prueba en OpenSearch Service, consulte el [Paso 2: Aubir datos a Amazon OpenSearch Service para su indexación](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/gsg.html#gsgupload-data) en la sección “Introducción” de la *Guía para desarrolladores de Amazon OpenSearch Service*.
+ Para obtener información completa sobre la ingesta de datos, consulte [Indexación de datos en Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/indexing.html) en la *Guía para desarrolladores de Amazon OpenSearch Service*.

# Creación de una canalización en Amazon OpenSearch Service
<a name="managed-opensearch-plugin-pipeline-example"></a>

Tras [instalar el complemento Search Ranking de Amazon Personalize](open-search-install-managed.md), estará listo para configurarlo mediante la creación de una canalización de búsqueda de OpenSearch. 

Una *canalización de búsqueda* es un conjunto de procesadores de solicitudes y respuestas que se ejecutan secuencialmente en el orden en que se crean. Cuando crea una canalización de búsqueda para el complemento, especifica un procesador de respuestas `personalized_search_ranking`. Para obtener información sobre las canalizaciones de búsqueda, consulta [Buscar canalizaciones](https://opensearch.org/docs/latest/search-plugins/search-pipelines/index/). 

Tras crear una canalización de búsqueda con un procesador de respuestas `personalized_search_ranking`, estará listo para empezar a aplicar el complemento a las consultas de OpenSearch. Puede aplicarlo a un índice de OpenSearch o a una consulta individual de OpenSearch. Para obtener más información, consulte [Aplicación del complemento](managed-apply-plugin.md). 

Puede usar el siguiente código de Python para crear una canalización de búsqueda con un procesador de respuestas `personalized_search_ranking` en un dominio de OpenSearch Service. Sustituya `domain endpoint` por la URL del punto de conexión de su dominio. Por ejemplo: `https://<domain name>.<AWS region>.es-staging.amazonaws.com`. Para obtener una explicación completa de cada parámetro de `personalized_search_ranking`, consulte [Campos para el procesador de respuestas `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}")
```

# Aplicación del complemento a las consultas de Amazon OpenSearch Service
<a name="managed-apply-plugin"></a>

Después de [crear un canalización](managed-opensearch-plugin-pipeline-example.md), podrá aplicar el complemento Search Ranking de Amazon Personalize a las consultas. Puede aplicar el complemento Search Ranking de Amazon Personalize a todas las consultas y respuestas de un índice. También puede aplicar el complemento a consultas y respuestas individuales. 
+  Puede usar el siguiente código de Python para aplicar una canalización de búsqueda a un índice. Con este enfoque, todas las búsquedas que utilizan este índice utilizan el complemento para personalizar los resultados de la búsqueda.

  ```
  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}")
  ```
+ Puede usar el siguiente código de Python para aplicar una canalización de búsqueda a una consulta individual para los coches de la marca Toyota.

  Actualice el código para especificar el punto de conexión de su dominio, su índice de OpenSearch Service, el nombre de su canalización y su consulta. Para `user_id`, especifique el ID del usuario del que va a obtener los resultados de la búsqueda. Este usuario debe estar en los datos que utilizó para crear la versión de solución de Amazon Personalize. Si el usuario no estuviera presente, Amazon Personalize clasifica los elementos según su popularidad.

  Para `context`, si utiliza metadatos contextuales, proporcione los metadatos contextuales del usuario, como su tipo de dispositivo. El campo `context` es opcional. Para obtener más información, consulte [Aumento de la relevancia de las recomendaciones con metadatos contextuales](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}")
  ```

# Comparación de los resultados de Amazon OpenSearch Service personalizados con los resultados sin personalización
<a name="managed-comparing-results"></a>

El complemento Search Ranking de Amazon Personalize reorganiza los resultados de búsqueda en función de la clasificación de Amazon Personalize y la clasificación de OpenSearch. La forma en que el complemento reclasifica los resultados depende de cómo haya configurado el procesador de respuestas `personalized_search_ranking` en sus canalizaciones. 

Para comprender cómo se clasifican los resultados, puede ejecutar consultas con y sin personalización y compararlos. Puede usar el siguiente código de Python para ejecutar dos consultas diferentes y generar los resultados en dos archivos JSON. El primer método ejecuta una consulta que utiliza el complemento para volver a clasificar los resultados. El segundo ejecuta un método que genera resultados sin personalización.

```
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)
```

# Supervisión del complemento con Amazon OpenSearch Service
<a name="managed-monitor"></a>

Al aplicar el complemento Search Ranking de Amazon Personalize a las consultas de OpenSearch, puede supervisar el complemento obteniendo métricas para sus procesos de búsqueda. Las métricas de canalización incluyen estadísticas como el número de solicitudes con error del procesador de respuestas `personalized_search_ranking`. 

 Si utiliza OpenSearch Service, puede supervisar el complemento mediante métricas en Amazon CloudWatch. Para obtener más información, consulte [Monitoreo de los dominios de Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/monitoring.html). 

Puede utilizar el siguiente código de Python para obtener métricas para todas las canalizaciones. Para obtener un ejemplo de unas métricas de canalización, consulte [Ejemplo de métricas de canalización](monitor-response.md).

```
import requests
from requests_auth_aws_sigv4 import AWSSigV4

domain_endpoint = 'domain endpoint'
url = f'{domain_endpoint}/_nodes/stats/search_pipeline'

auth = AWSSigV4('es')
headers = {'Content-Type': 'application/json'}
try:
    response = requests.get(url, auth=auth, headers=headers, verify=False)
    print(response.text)
except Exception as e:
    print(f"Error: {e}")
```

# Personalización de los resultados de Open Search de código abierto con Amazon Personalize
<a name="opensearch-open-source"></a>

Para personalizar los resultados en código abierto OpenSearch, haga lo siguiente:

1.  **Configure Amazon Personalize**: si aún no lo ha hecho, complete los pasos de [Configuración de Amazon Personalize](setup.md) para configurar sus credenciales y configurar los permisos para Amazon Personalize. No es necesario configurar el AWS SDKs para personalizar OpenSearch los resultados. 

1.  **Complete el flujo de trabajo de Amazon Personalize**: complete el flujo de trabajo de Amazon Personalize para importar datos, crear una solución con la Personalized-Ranking-v receta de clasificación doble o personalizada, preparar una versión de solución personalizada e implementarla en una campaña. Debe crear un conjunto de datos de interacciones de elementos. Un conjunto de datos de elementos y usuarios son opcionales. Para obtener más información, consulte [Detalles del flujo de trabajo de Amazon Personalize](personalize-workflow.md).

1.  **Configurar permisos**: configure los permisos para poder acceder a los recursos de Amazon Personalize desde su OpenSearch clúster. Para obtener más información, consulte [Configuración de permisos](opensearch-granting-access.md). 

1.  **Instale el complemento Search Ranking de Amazon Personalize**: este complemento gestiona la comunicación con Amazon Personalize y la reclasificación de los resultados. 
   + Si ya tiene un OpenSearch clúster en ejecución, puede instalar el complemento manualmente. Para obtener más información, consulte [Instalación manual del complemento en un clúster de OpenSearch existente](opensearch-manual-install.md).
   + Si no has creado un OpenSearch clúster, puedes usar un script bash de inicio rápido para crear uno. Para obtener más información, consulte [Creación de un clúster nuevo e instalación del complemento con un script](opensearch-install-with-script.md).

1.  **Configure el complemento Search Ranking de Amazon Personalize**: para configurar el complemento, debe crear canalizaciones de búsqueda. Las *canalizaciones de búsqueda* son conjuntos de procesadores de solicitudes y respuestas. Cuando crea una canalización para el complemento, especifica sus recursos de Amazon Personalize en un procesador de respuestas `personalized_search_ranking`. También puede configurar el peso que el complemento otorga a los resultados de Amazon Personalize cuando cambia la clasificación de los resultados. Para obtener más información, consulte [Creación de una canalización](opensearch-plugin-pipeline-example.md). 

1.  **Aplicar el complemento Amazon Personalize Search Ranking a OpenSearch las consultas**: puede aplicar el complemento Amazon Personalize Search Ranking a todas las consultas y respuestas de un OpenSearch índice. También puedes aplicar el plugin a OpenSearch consultas y respuestas individuales. Para obtener información sobre cómo aplicar el complemento a las consultas de código abierto OpenSearch, consulte[Aplicación del complemento](opensource-apply-plugin.md).

1.  **Comparar resultados**: el complemento Amazon Personalize Search Ranking reclasifica los resultados de búsqueda en la respuesta a la OpenSearch consulta. Considera tanto la clasificación de Amazon Personalize como la clasificación de OpenSearch. Para entender cómo se reclasifican los resultados, puede comparar los resultados de las consultas que utilizan la personalización y las que no. Para obtener información sobre cómo comparar los resultados con los de código abierto OpenSearch, consulte[Comparación de resultados](opensource-comparing-results.md). 

1.  **Supervise el complemento Search Ranking de Amazon Personalize**: al aplicar el complemento Search Ranking de Amazon Personalize a las consultas de búsqueda, puede supervisar el complemento obteniendo métricas de sus canalizaciones de búsqueda. Para obtener información sobre la supervisión del complemento en un OpenSearch clúster de código abierto, consulte[Supervisión del complemento con OpenSearch de código abierto](opensource-monitor.md). Para ver un extracto de las métricas de canalización devueltas OpenSearch, consulte[Ejemplo de métricas de canalización](monitor-response.md).

**Topics**
+ [Configuración de OpenSearch permisos de código abierto](opensearch-granting-access.md)
+ [Instalación manual del complemento Search Ranking de Amazon Personalize en un clúster de OpenSearch existente](opensearch-manual-install.md)
+ [Creación de un clúster nuevo e instalación del complemento con un script](opensearch-install-with-script.md)
+ [Creación de una canalización en OpenSearch de código abierto](opensearch-plugin-pipeline-example.md)
+ [Aplicación del complemento Search Ranking de Amazon Personalize a las consultas de OpenSearch de código abierto](opensource-apply-plugin.md)
+ [Comparación de los resultados de OpenSearch personalizados con los resultados sin personalización](opensource-comparing-results.md)
+ [Supervisión del complemento con OpenSearch de código abierto](opensource-monitor.md)

# Configuración de OpenSearch permisos de código abierto
<a name="opensearch-granting-access"></a>

Si utilizas código abierto OpenSearch, debes poder acceder a tus recursos de Amazon Personalize desde tu clúster de búsqueda abierto. Para otorgar acceso, realice lo siguiente:
+ Si está configurando OpenSearch desde cero, puede usar un [script bash de inicio rápido](https://github.com/opensearch-project/search-processor/blob/main/helpers/personalized_search_ranking_quickstart.sh) para ejecutar un OpenSearch clúster en un contenedor de Docker. El script usa las credenciales predeterminadas de tu perfil. AWS Puede especificar un perfil alternativo al ejecutar el script. 

  Estas credenciales deben estar asociadas a un usuario o rol que tenga permiso para realizar la GetPersonalizedRanking acción de tu campaña Amazon Personalize. Para ver una política de IAM de ejemplo, consulte [Ejemplos de políticas de IAM](#opensearch-role-policy-example). Como alternativa, las credenciales deben tener permiso para asumir un rol que tenga estos permisos. Puede proporcionar el nombre de recurso de Amazon (ARN) para este rol al crear un canalización para el complemento Search Ranking de Amazon Personalize. 
+ Si no utilizas el [script bash de inicio rápido](https://github.com/opensearch-project/search-processor/blob/main/helpers/personalized_search_ranking_quickstart.sh), puedes añadir tus credenciales manualmente a tu almacén de OpenSearch claves. Estas credenciales deben corresponder a un usuario o rol que tenga permiso para realizar la GetPersonalizedRanking acción de tu campaña Amazon Personalize. 

  Para añadir tus AWS credenciales manualmente al OpenSearch almacén de claves, ejecuta el siguiente comando en el lugar en el que se ejecute el OpenSearch clúster (por ejemplo, en un contenedor de Docker). A continuación, proporcione cada credencial. Si no utiliza un token de sesión, puede omitir la última línea del comando. 

  ```
  opensearch-keystore add \
  personalized_search_ranking.aws.access_key \
  personalized_search_ranking.aws.secret_key \
  personalized_search_ranking.aws.session_token
  ```
+ Si ejecuta el OpenSearch clúster en una instancia de Amazon EC2, puede conceder permisos con un perfil de instancia de IAM. La política asociada al rol debe concederle permiso para realizar la GetPersonalizedRanking acción en tu campaña Amazon Personalize. También conceder el permisos de Amazon EC2 para asumir el rol. 

  Para obtener más información sobre los perfiles de instancia de Amazon EC2, consulte [Uso de perfiles de instancia](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html). Para ver una política de ejemplo, consulte [Ejemplos de políticas de IAM](#opensearch-role-policy-example).

## Ejemplos de políticas de IAM
<a name="opensearch-role-policy-example"></a>

El siguiente ejemplo de política concede a un usuario o rol los permisos mínimos para obtener una clasificación personalizada de su campaña de Amazon Personalize. Para `Campaign ARN`, especifique el nombre de recurso de Amazon (ARN) de la campaña de Amazon Personalize. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "personalize:GetPersonalizedRanking"
            ],
            "Resource": "arn:aws:personalize:us-east-1:111122223333:campaign/YourResourceId"
        }
    ]
}
```

------

Además, si ejecuta el OpenSearch clúster en una instancia de Amazon EC2 y concede permisos con un perfil de instancia de IAM, la política de confianza del rol debe conceder los permisos de Amazon `AssumeRole` EC2 de la siguiente manera. Para obtener más información sobre los perfiles de instancia de Amazon EC2, consulte [Uso de perfiles de instancia](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html). 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "ec2.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

# Instalación manual del complemento Search Ranking de Amazon Personalize en un clúster de OpenSearch existente
<a name="opensearch-manual-install"></a>

Si ya tiene un clúster de OpenSearch, puede instalar manualmente el complemento en su clúster directamente desde el repositorio de GitHub de OpenSearch.

**Para instalar el complemento manualmente**

1.  Utilice el siguiente comando para iniciar el clúster de OpenSearch: 

   ```
   bin/opensearch
   ```

1. Si aún no lo ha hecho, suba datos de catálogo a su clúster de OpenSearch. Al subir los datos, se crea un índice de OpenSearch y se definen las asignaciones de campos. A continuación suba sus datos a ese índice. Para ver un ejemplo, consulte [Crear un índice y asignaciones de campos con datos de muestra](https://opensearch.org/docs/latest/quickstart/#create-an-index-and-field-mappings-using-sample-data). 

1. Utilice el siguiente comando para instalar el complemento.

   ```
   bin/opensearch-plugin install https://github.com/opensearch-project/search-processor/releases/download/2.9.0/opensearch-search-processor-2.9.0.0.zip
   ```

   Para obtener más información sobre la instalación de complementos, consulte [Instalación de complementos](https://opensearch.org/docs/latest/install-and-configure/plugins/).

 Después de instalar el complemento Search Ranking de Amazon Personalize, estará listo para configurarlo. Para configurar el complemento, cree una canalización de búsqueda y especifique un procesador de respuestas `personalized_search_ranking`. Para obtener más información, consulte [Creación de una canalización](opensearch-plugin-pipeline-example.md).

# Creación de un clúster nuevo e instalación del complemento con un script
<a name="opensearch-install-with-script"></a>

Si no ha creado un clúster de OpenSearch, puede utilizar un script bash de inicio rápido para crear uno. Este script configura un clúster de OpenSearch en un contenedor de Docker, configura las credenciales con su perfil AWS predeterminado e instala el complemento Search Ranking de Amazon Personalize.

 Para obtener información sobre cómo crear manualmente un clúster de OpenSearch, consulte las instrucciones de [inicio rápido](https://opensearch.org/docs/quickstart) en la documentación de OpenSearch. 

**Para instalar el complemento con un script bash de inicio rápido**

1.  Antes de ejecutar el script, descargue e instale [Docker de escritorio](https://docs.docker.com/get-docker/) para su sistema operativo.

1. Descargue el [script bash de inicio rápido](https://github.com/opensearch-project/search-processor/blob/main/helpers/personalized_search_ranking_quickstart.sh) desde GitHub.

1. En el directorio de trabajo, ejecute el script con el siguiente comando.

   ```
   sh personalized_search_ranking_quickstart.sh
   ```

   Con este comando, el script usa las credenciales en su perfil AWS predeterminado. Para proporcionar un perfil alternativo, utilice el argumento `--profile`.

   ```
   sh personalized_search_ranking_quickstart.sh --profile profile-name
   ```

   Tras ejecutar el script, encontrará más información sobre el script en el archivo README que se encuentra en el directorio único creado por el script. Este directorio almacena los archivos Dockerfile y docker-compose.yml que utiliza el script. Por ejemplo: `../opensearch-personalize-intelligent-ranking-docker.1234/README`.

1. Suba datos de catálogo a su clúster de OpenSearch. Al subir los datos, se crea un índice de OpenSearch y se definen las asignaciones de campos. A continuación suba sus datos a ese índice. Para ver un ejemplo, consulte [Crear un índice y asignaciones de campos con datos de muestra](https://opensearch.org/docs/latest/quickstart/#create-an-index-and-field-mappings-using-sample-data). 

 Tras configurar OpenSearch e instalar el complemento Search Ranking de Amazon Personalize, estará listo para configurarlo. Para configurar el complemento, cree una canalización de búsqueda y especifique un procesador de respuestas `personalized_search_ranking`. Para obtener más información, consulte [Creación de una canalización](opensearch-plugin-pipeline-example.md). 

# Creación de una canalización en OpenSearch de código abierto
<a name="opensearch-plugin-pipeline-example"></a>

Tras instalar el complemento en el clúster, estará listo para configurarlo mediante la creación de una canalización de búsqueda de OpenSearch. 

Una *canalización de búsqueda* es un conjunto de procesadores de solicitudes y respuestas que se ejecutan secuencialmente en el orden en que se crean. Cuando crea una canalización de búsqueda para el complemento, especifica un procesador de respuestas `personalized_search_ranking`. Para obtener información sobre las canalizaciones de búsqueda, consulta [Buscar canalizaciones](https://opensearch.org/docs/latest/search-plugins/search-pipelines/index/). 

Después de crear una canalización con un procesador de respuestas `personalized_search_ranking`, podrá empezar a aplicar el complemento a las consultas. Para obtener más información, consulte [Aplicación del complemento](opensource-apply-plugin.md). 

Puede utilizar el siguiente comando curl para crear una canalización de búsqueda con un procesador de respuesta `personalized_search_ranking` en un clúster de OpenSearch de código abierto. Para obtener una explicación completa de cada parámetro de `personalized_search_ranking`, consulte [Campos para el procesador de respuestas `personalized_search_ranking`](opensearch-plugin-pipeline-fields.md).

```
curl -X PUT "http://localhost:9200/_search/pipeline/pipeline-name" -ku 'admin:admin' --insecure -H 'Content-Type: application/json' -d'
{
  "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
      }
    }
  ]
}'
```

Tras crear una canalización de búsqueda con un procesador de respuestas `personalized_search_ranking`, estará listo para empezar a aplicar el complemento a las consultas de OpenSearch. Puede aplicarlo a un índice de OpenSearch o a una consulta individual de OpenSearch. Para obtener más información, consulte [Aplicación del complemento Search Ranking de Amazon Personalize a las consultas de OpenSearch de código abierto](opensource-apply-plugin.md). 

# Aplicación del complemento Search Ranking de Amazon Personalize a las consultas de OpenSearch de código abierto
<a name="opensource-apply-plugin"></a>

Puede aplicar el complemento Search Ranking de Amazon Personalize a todas las consultas y respuestas de un índice de OpenSearch. También puede aplicar el complemento a consultas y respuestas individuales de OpenSearch. 
+  El siguiente comando curl aplica una canalización de búsqueda a un índice de OpenSearch en un clúster de OpenSearch de código abierto que se ejecuta localmente. Con este enfoque, todas las búsquedas de este índice utilizan el complemento para personalizar los resultados de la búsqueda.

  ```
  curl -XGET "https://localhost:9200/index/_settings" -ku 'admin:admin' --insecure -H 'Content-Type: application/json' -d'
  {
    "index.search.default_pipeline": "pipeline-name"
  }
  '
  ```
+ El siguiente comando curl aplica una canalización de búsqueda a una consulta individual para los coches de la marca Toyota a un índice de un clúster de OpenSearch de código abierto que se ejecuta localmente.

   Para `user_id`, especifique el ID del usuario del que va a obtener los resultados de la búsqueda. Este usuario debe estar en los datos que utilizó para crear la versión de solución de Amazon Personalize. Si el usuario no estuviera presente, Amazon Personalize clasifica los elementos según su popularidad. Para `context`, si utiliza metadatos contextuales, proporcione los metadatos contextuales del usuario, como su tipo de dispositivo. El campo `context` es opcional. Para obtener más información, consulte [Aumento de la relevancia de las recomendaciones con metadatos contextuales](contextual-metadata.md). 

  ```
  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" }
      }
    }
  }
  '
  ```

 Para entender cómo se reclasifican los resultados, puede usar OpenSearch Dashboards para comparar los resultados de OpenSearch con los resultados reclasificados con el complemento. Para obtener más información, consulte [Comparación de los resultados de OpenSearch personalizados con los resultados sin personalización](opensource-comparing-results.md). 

 A medida que vaya aplicando el complemento a las consultas de OpenSearch, podrá supervisarlo obteniendo métricas para su canalización de OpenSearch. Para obtener más información, consulte [Supervisión del complemento con OpenSearch de código abierto](opensource-monitor.md). 

# Comparación de los resultados de OpenSearch personalizados con los resultados sin personalización
<a name="opensource-comparing-results"></a>

Para entender cómo se reclasifican los resultados, puede ejecutar consultas con la [consola de Dev Tools](https://opensearch.org/docs/latest/dashboards/dev-tools/run-queries) en dos ventanas de navegador independientes. A continuación, puede comparar los resultados de las consultas con y sin personalización. 

**Para comparar los resultados con la consola de Dev Tools**

1. Asegúrese de que OpenSearch Dashboards esté instalado. El script bash de inicio rápido instala OpenSearch Dashboards. Si no usa el script o ya tiene un clúster en ejecución, debe instalar OpenSearch Dashboards. Para obtener más información, consulte [Instalación de OpenSearch Dashboards](https://opensearch.org/docs/latest/install-and-configure/install-dashboards/index/).

1. Inicie OpenSearch Dashboards. Abra `http://localhost:5601` desde un navegador e inicie sesión en OpenSearch Dashboards. Las credenciales predeterminadas son el nombre de usuario “admin” y la contraseña “admin”.

1. Elija **Dev Tools** en el menú de administración de la página de inicio de OpenSearch Dashboards.

1. Abra otra ventana del navegador y vuelva a abrir la consola de Dev Tools. Puede usar la URL de la ventana anterior.

1. En una ventana, escriba una consulta que no utilice ninguna reordenación para personalizarla. En la otra ventana, introduzca un comando curl que utilice una canalización con el procesador de respuestas `personalized_search_ranking`. Si pega un comando curl directamente en la consola, el comando se convierte automáticamente al formato que utilice la consola. Para ver un comando de ejemplo, consulte [Aplicación del complemento Search Ranking de Amazon Personalize a las consultas de OpenSearch de código abierto](opensource-apply-plugin.md).

1. Ejecute las dos consultas y compare los resultados.

# Supervisión del complemento con OpenSearch de código abierto
<a name="opensource-monitor"></a>

Al aplicar el complemento Search Ranking de Amazon Personalize a las consultas de OpenSearch, puede supervisar el complemento obteniendo métricas para sus procesos de búsqueda. Las métricas de canalización incluyen estadísticas como el número de solicitudes con error del procesador de respuestas `personalized_search_ranking`. 

 Puede utilizar el siguiente código para obtener métricas para todas las canalizaciones. La respuesta contiene estadísticas de todas las canalizaciones de búsqueda. Para obtener un ejemplo de unas métricas de canalización, consulte [Ejemplo de métricas de canalización](monitor-response.md).

```
curl -XGET "https://localhost:9200/_nodes/stats/search_pipeline?pretty" -ku 'admin:admin'
```

# Campos para el procesador de respuestas `personalized_search_ranking`
<a name="opensearch-plugin-pipeline-fields"></a>

Cuando crea una canalización de búsqueda para el complemento Search Ranking de Amazon Personalize, especifica un procesador de respuestas `personalized_search_ranking` con los siguientes campos. 
+  **campaign\$1arn (obligatorio)**: especifique el nombre del recurso de Amazon (ARN) de la campaña de Amazon Personalize que se utilizará para personalizar los resultados. 
+  **item\$1id\$1field (opcional)**: si el campo `_id` de un documento indexado en OpenSearch no se corresponde con sus itemIds de Amazon Personalize, especifique el nombre del campo que sí lo hace. De forma predeterminada, el complemento asume que los datos `_id` coinciden con el itemId de sus datos de Amazon Personalize. 
+  **recipe (obligatorio)**: especifica el nombre de la receta de Amazon Personalize que se va a utilizar. Para usar el complemento, puede especificar `aws-personalized-ranking-v2` o `aws-personalized-ranking`. 
+ **weight (obligatorio)**: especifique el énfasis que el procesador de respuestas pone en la personalización cuando reclasifica los resultados. Especifique un valor dentro de un rango de 0,0—1,0. Cuanto más cerca esté de `1.0`, más probable es que los resultados de Amazon Personalize tengan una clasificación más alta. Si especifica `0.0`, no se produce ninguna personalización y OpenSearch tiene prioridad.
+ **tag (opcional)**: especifique un identificador para el procesador.
+ **iam\$1role\$1arn (obligatorio para OpenSearch Service, opcional para OpenSearch de código abierto)**: para OpenSearch Service, indique el nombre de recurso de Amazon (ARN) rol que ha creado al [configurar los permisos](opensearch-granting-access-managed.md) para que OpenSearch Service acceda a los recursos de Amazon Personalize. Si los recursos de OpenSearch Service y Amazon Personalize existen en cuentas diferentes, especifique el rol que concede permisos `AssumeRole` para OpenSearch Service. Para obtener más información, consulte [Configuración de permisos cuando los recursos están en cuentas distintas](configuring-multiple-accounts.md).

  En el caso de OpenSearch de código abierto, si utiliza varios roles para restringir los permisos a distintos grupos de usuarios de la organización, especifique el ARN del rol que tiene permiso para acceder a Amazon Personalize. Si utiliza únicamente las credenciales AWS de su almacén de claves de OpenSearch, puede omitir este campo. 
+ **aws\$1region (obligatorio)**: la región AWS en la que creó su campaña de Amazon Personalize.
+ **ignore\$1failure (opcional)**: especifique si el complemento ignora los errores del procesador. Para los valores, especifique `true` o `false`. Para sus entornos de producción, le recomendamos que lo especifique `true` para evitar interrupciones en las respuestas a las consultas. En el caso de los entornos de prueba, puede especificar `false` para ver los errores que genera el complemento.
+ **external\$1account\$1iam\$1role\$1arn:** si utiliza OpenSearch Service y los recursos de Amazon Personalize y OpenSearch Service están en cuentas diferentes, especifique el ARN del rol que tiene permiso para acceder a los recursos de Amazon Personalize. Este rol debe estar en la misma cuenta que los recursos de Amazon Personalize. Para obtener más información, consulte [Configuración de permisos cuando los recursos están en cuentas distintas](configuring-multiple-accounts.md). 

 Para ver una muestra de código de OpenSearch Service, consulte [Creación de una canalización en Amazon OpenSearch Service](managed-opensearch-plugin-pipeline-example.md). Para ver un ejemplo de OpenSearch de código abierto, consulte [Creación de una canalización en OpenSearch de código abierto](opensearch-plugin-pipeline-example.md).

# Ejemplo de métricas de canalización
<a name="monitor-response"></a>

Al aplicar el complemento Search Ranking de Amazon Personalize a las consultas de OpenSearch, puede supervisar el complemento obteniendo métricas para sus procesos de búsqueda. Las métricas de canalización incluyen estadísticas como el número de solicitudes con error del procesador de respuestas `personalized_search_ranking`. 

 En el siguiente código se muestra un extracto de las métricas de canalización devueltas por OpenSearch. Muestra solo el objeto `pipelines` que contiene las estadísticas de dos canalizaciones diferentes. Para cada canalización, puede encontrar las métricas del complemento Search Ranking de Amazon Personalize en la lista de procesadores de respuestas `personalized_search_ranking`. Para ver un ejemplo completo de todas las métricas, consulte [Búsqueda de métricas de canalización](https://opensearch.org/docs/latest/search-plugins/search-pipelines/search-pipeline-metrics/). 

```
{
....
....
  "pipelines": {
    "pipelineA": {
      "request": {
        "count": 0,
        "time_in_millis": 0,
        "current": 0,
        "failed": 0
      },
      "response": {
        "count": 6,
        "time_in_millis": 2246,
        "current": 0,
        "failed": 0
      },
      "request_processors": [],
      "response_processors": [
        {
          personalized_search_ranking": {
            "type": "personalized_search_ranking",
            "stats": {
              "count": <number of requests>,
              "time_in_millis": <time>,
              "current": 0,
              "failed": <number of failed requests>
            }
          }
        }
      ]
    },
    "pipelineB": {
      "request": {
        "count": 0,
        "time_in_millis": 0,
        "current": 0,
        "failed": 0
      },
      "response": {
        "count": 8,
        "time_in_millis": 2248,
        "current": 0,
        "failed": 0
      },
      "request_processors": [],
      "response_processors": [
        {
          "personalized_search_ranking": {
            "type": "personalized_search_ranking",
            "stats": {
              "count": <number of requests>,
              "time_in_millis": <time>,
              "current": 0,
              "failed": <number of failed requests>
            }
          }
        }
      ]
    }
  }
....
....
}
```