

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Como personalizar os resultados da pesquisa do OpenSearch
<a name="personalize-opensearch"></a>

Você pode usar o Amazon Personalize para personalizar os resultados do OpenSearch de código aberto ou do Amazon OpenSearch Service para os usuários. 

 O [OpenSearch](https://opensearch.org/docs/latest) é um serviço autogerenciado de pesquisa de código aberto elaborado com base na Licença Apache 2.0. Use o serviço gerenciado [Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html) para implantar, operar e expandir em grande escala os clusters do OpenSearch na Nuvem AWS. Quando você usa o Amazon OpenSearch Service, o OpenSearch traz e classifica os resultados. 

Ao classificar os resultados da consulta, o OpenSearch usa uma estrutura de classificação probabilística chamada [BM-25](https://en.wikipedia.org/wiki/Okapi_BM25) para calcular as pontuações de relevância. Se determinada palavra-chave aparece com mais frequência em um documento, o BM-25 atribui ao documento uma pontuação por relevância maior. O ranking do OpenSearch não leva em conta traços do comportamento do usuário, como dados de cliques, por exemplo. 

 Quando você usa o Amazon Personalize com o OpenSearch, o Amazon Personalize reclassifica os resultados do OpenSearch com base no histórico do comportamento do usuário e em qualquer metadado sobre os itens ou sobre o usuário. O OpenSearch incorpora a nova classificação antes de trazer a resposta da pesquisa ao seu aplicativo. Você controla a importância que o OpenSearch atribui à classificação do Amazon Personalize na hora de usar com os resultados do OpenSearch. 

 Com essa reclassificação, o usuário recebe resultados mais interessantes e relevantes. Isso aumenta as taxa de cliques e de conversões do seu app. Acesse [Exemplos de casos de uso](#opensearch-use-case-example) para ver um exemplo de caso de uso mostrando como a pesquisa personalizada melhora os resultados de um aplicativo de comércio eletrônico. 

 Antes de começar a personalizar os resultados do OpenSearch, acesse e confira a lista dos requisitos [Requisitos do plug-in Classificação de pesquisas do Amazon Personalize](plugin-requirements.md). 

**Topics**
+ [Exemplos de casos de uso](#opensearch-use-case-example)
+ [Como funciona o plug-in Classificação de pesquisas do Amazon Personalize](#opensearch-plugin-how-it-works)
+ [Mais informações](#open-search-plugin-additional-info)
+ [Requisitos do plug-in Classificação de pesquisas do Amazon Personalize](plugin-requirements.md)
+ [Personalização de resultados do Amazon OpenSearch Service com o Amazon Personalize](opensearch-service.md)
+ [Personalizar os resultados do OpenSearch de código aberto com o Amazon Personalize](opensearch-open-source.md)
+ [Campos para o processador de resposta de `personalized_search_ranking`](opensearch-plugin-pipeline-fields.md)
+ [Exemplo de métricas do pipeline](monitor-response.md)

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

Quando você usa o Amazon Personalize para reclassificar os resultados do OpenSearch, a pesquisa trará resultados mais relevantes para seus usuários. Exemplo: você tem aplicativo de comércio eletrônico para vender carros. Se o usuário fizer uma busca por carros da Toyota e você não personalizar os resultados, o OpenSearch retornará uma lista de carros feita pela Toyota com base nas palavras-chave nos seus dados. A classificação dessa lista seria a mesma para todos os usuários. 

Mas, se você usar o Amazon Personalize para personalizar os resultados, o OpenSearch reclassifica os carros em ordem de relevância e de maneira específica para as pessoas com base no comportamento pessoal, como cliques. O carro em que o usuário tem mais probabilidade de clicar aparece em primeiro lugar. 

Se optar por personalizar os resultados do OpenSearch, você poderá controlar a ênfase que o OpenSearch atribui à classificação do Amazon Personalize. Continuando com este exemplo, se um usuário pesquisar um tipo específico de carro de determinado ano (como um Toyota Prius 2008), talvez você opte por usar mais à classificação original do OpenSearch. 

No entanto, para buscas mais genéricas que trazem vários resultados variados, como uma pesquisa por todos os veículos Toyota, contar com a personalização é uma ótima opção. Nesse caso, os carros que aparecem no topo da lista são os mais relevantes para o usuário em particular. 

## Como funciona o plug-in Classificação de pesquisas do Amazon Personalize
<a name="opensearch-plugin-how-it-works"></a>

Confia no diagrama abaixo como funciona o plug-in Classificação de pesquisas do Amazon Personalize.

![\[Descreve como o plug-in funciona quando você o usa para personalizar os resultados do OpenSearch.\]](http://docs.aws.amazon.com/pt_br/personalize/latest/dg/images/opensearch-plugin-how-it-works.png)


1. Você envia a consulta do cliente ao domínio do OpenSearch Service ou ao cluster do OpenSearch de código aberto.

1.  O OpenSearch envia a resposta da consulta (lista de itens que são relevantes para a consulta) e o ID do usuário ao plug-in Classificação de pesquisas do Amazon Personalize. 

1. O plug-in envia os itens e o usuário em resposta à sua campanha do Amazon Personalize para classificação. Ele usa os valores de fórmula e campanha do nome do recurso da Amazon (ARN) no seu pipeline de pesquisa para fazer uma classificação personalizada para o usuário. Ele usa a operação da API GetPersonalizedRanking para recomendações. Na solicitação, ele passa o userId do usuário que está fazendo a consulta e os itens retornados da consulta do OpenSearch na `inputList`. 

1.  O Amazon Personalize traz os resultados reclassificados para o plug-in. 

1. O plug-in reorganiza e traz os resultados da pesquisa para seu domínio do OpenSearch Service ou do cluster do OpenSearch de código aberto. Ele reclassifica os resultados com base na resposta da sua campanha do Amazon Personalize e na ênfase na personalização que você configurar. 

1. Seu cluster do OpenSearch de código aberto ou o domínio do OpenSearch Service traz os resultados finais para seu aplicativo. 

## Mais informações
<a name="open-search-plugin-additional-info"></a>

Os recursos a seguir contêm mais informações sobre o uso do OpenSearch.
+ Para mais informações sobre os conceitos básicos do OpenSearch de código aberto, consulte [Início rápido](https://opensearch.org/docs/quickstart).
+ Para instruções, consulte [Conceitos básicos sobre o Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/gsg.html) no *Guia do desenvolvedor do Amazon OpenSearch Service*.
+ Para informações sobre a fórmula de classificação personalizada no Amazon Personalize, consulte [Fórmula Personalized-Ranking-v2](native-recipe-personalized-ranking-v2.md) ou [Fórmulas de classificações personalizadas](native-recipe-search.md).

# Requisitos do plug-in Classificação de pesquisas do Amazon Personalize
<a name="plugin-requirements"></a>

Antes de começar a personalizar os resultados do OpenSearch, confira as seguintes diretrizes e requisitos relacionados ao plug-in Classificação de pesquisa do Amazon Personalize:
+ Use a versão 2.9.0 ou posterior do OpenSearch. Se você usa o Amazon OpenSearch Service, seu dormínio deve usar a versão 2.9 ou posterior.
+ Siga as instruções dispostas em [Configurar permissões](aws-personalize-set-up-permissions.md) para conceder aos usuários permissão para acessar o Amazon Personalize e dê permissão ao Amazon Personalize para acessar seus recursos no Amazon Personalize. 
+ Você precisa ser capaz de acessar seus recursos do Amazon Personalize a partir do seu domínio do OpenSearch Service ou do cluster do OpenSearch de código aberto. 
  +  Para saber como conceder acesso a um domínio do OpenSearch Service, consulte [Configurando as permissões do Amazon OpenSearch Service](opensearch-granting-access-managed.md). 
  + Para saber como conceder acesso a um cluster do OpenSearch, consulte [Configurando OpenSearch permissões de código aberto](opensearch-granting-access.md).
+  Você pode usar somente recursos personalizados do Amazon Personalize. Se você criou um grupo de conjuntos de dados de domínio, ainda poderá adicionar recursos personalizados. 
+ Você pode usar somente as fórmulas personalizadas [Fórmula Personalized-Ranking-v2](native-recipe-personalized-ranking-v2.md) ou [Fórmulas de classificações personalizadas](native-recipe-search.md).
+ É necessário criar um conjunto de dados de interações com itens no Amazon Personalize. Itens e conjuntos de dados de usuários são opcionais.
+ Você não pode aplicar filtros do Amazon Personalize quando estiver usando o plug-in Classificação de pesquisas do Amazon Personalize.
+ Por padrão, o plug-in assume que `_id` para um documento indexado no OpenSearch corresponde ao itemId nos seus dados do Amazon Personalize. Se os seus dados do OpenSearch usarem um campo diferente que corresponda aos seus itemIds do Amazon Personalize, você deverá especificar o nome do campo ao configurar o plug-in.
+ O userId que você usa para um usuário que faz uma consulta deve corresponder ao userId dele nos dados que você importa para o Amazon Personalize.
+ O plugin reclassifica apenas os 500 melhores resultados de pesquisa do OpenSearch. Os itens restantes não são reclassificados e acabam na parte de baixo da lista.

# Personalização de resultados do Amazon OpenSearch Service com o Amazon Personalize
<a name="opensearch-service"></a>

Para personalizar OpenSearch os resultados do Amazon OpenSearch Service, você faz o seguinte:

1.  **Configure o Amazon Personalize** — Para isso, conclua as etapas em [Configuração do Amazon Personalize](setup.md) para configurar suas credenciais e as permissões para o Amazon Personalize. Você não precisa configurar o AWS SDKs para personalizar OpenSearch os resultados. 

1.  **Conclua o fluxo de trabalho do Amazon Personalize** — Conclua o fluxo de trabalho do Amazon Personalize para importar dados, criar uma solução com Personalized-Ranking-v a receita de classificação 2 ou personalizada, treinar uma versão de solução personalizada e implantá-la em uma campanha. É necessário criar um conjunto de dados de interações com itens. Um conjunto de dados de usuários e um conjunto de dados de itens são opcionais. Para obter mais informações, consulte [Detalhes do fluxo de trabalho do Amazon Personalize](personalize-workflow.md).

1.  **Configure permissões** — Configure permissões para que você possa acessar seus recursos do Amazon Personalize a partir do seu domínio de OpenSearch serviço. Para obter mais informações, consulte [Configurar permissões](opensearch-granting-access-managed.md). 

1.  **Instalar o plug-in Classificação de pesquisas do Amazon Personalize**: esse plug-in auxilia na comunicação com o Amazon Personalize e com os resultados de reclassificação. Para obter informações sobre como instalar o plug-in em um domínio OpenSearch de serviço, consulte[Instalar o plug-in](open-search-install-managed.md).

1.  **Configure o plug-in Classificação de pesquisas do Amazon Personalize** — Para fazer isso, você vai criar pipelines de pesquisa. Os *pipelines de pesquisa* são conjuntos de processadores de solicitações e respostas. Na hora de criar um pipeline para o plug-in, você especifica seus recursos do Amazon Personalize em um processador de respostas do `personalized_search_ranking`. Você também configura a importância que o plug-in atribui aos resultados do Amazon Personalize quando está reclassificando os resultados. Para obter mais informações, consulte [Criar um pipeline](managed-opensearch-plugin-pipeline-example.md).

1.  **Aplique o plug-in Amazon Personalize Search Ranking às OpenSearch consultas** — Depois de configurar um pipeline de pesquisa com um processador de `personalized_search_ranking` respostas, você estará pronto para aplicar o plug-in Amazon Personalize Search Ranking às suas OpenSearch consultas e visualizar os resultados reclassificados. Para obter informações sobre como aplicar o plug-in às consultas OpenSearch de serviço, consulte[Aplicar o plug-in](managed-apply-plugin.md).

1.  **Compare resultados** — O plug-in Amazon Personalize Search Ranking reclassifica os resultados da pesquisa na resposta da OpenSearch consulta. Ele considera tanto a classificação do Amazon Personalize quanto a classificação de. OpenSearch Para entender a reclassificação dos resultados, compare os resultados das consultas que usam personalização e que não usam. Para obter informações sobre a comparação de resultados com o OpenSearch Serviço, consulte[comparar os resultados](managed-comparing-results.md).

1.  **Monitore o plug-in Classificação de pesquisas do Amazon Personalize** — Quando você aplica este plug-in às consultas de pesquisa, é possível monitorá-lo conferido métricas para os canais de pesquisa. Para obter informações sobre o monitoramento do plug-in com o OpenSearch Service, consulte[Como monitorar o plug-in](managed-monitor.md).

**Topics**
+ [Configurando as permissões do Amazon OpenSearch Service](opensearch-granting-access-managed.md)
+ [Instalar o plug-in Classificação de pesquisas do Amazon Personalize em um domínio do OpenSearch Service.](open-search-install-managed.md)
+ [Criar um pipeline com o Amazon OpenSearch Service](managed-opensearch-plugin-pipeline-example.md)
+ [Como aplicar o plug-in às consultas do Amazon OpenSearch Service](managed-apply-plugin.md)
+ [Comparar os resultados personalizados do Amazon OpenSearch Service com os resultados sem personalização](managed-comparing-results.md)
+ [Como monitorar o plugin com o Amazon OpenSearch Service](managed-monitor.md)

# Configurando as permissões do Amazon OpenSearch Service
<a name="opensearch-granting-access-managed"></a>

Se você usa o Amazon OpenSearch Service, você deve ser capaz de acessar seus recursos do Amazon Personalize a partir do seu domínio do OpenSearch Serviço. 

**Configurar permissões**

1. Crie um ou mais perfis de serviço do IAM com permissão para acessar seus recursos levando em consideração se estão na mesma conta ou em contas diferentes.
   +  Se o seu OpenSearch Serviço e os recursos do Amazon Personalize estiverem na mesma conta, você cria uma função de serviço do IAM para o OpenSearch Serviço e concede a ele permissão para obter uma classificação personalizada da sua campanha do Amazon Personalize. Para obter mais informações, consulte [Configurar permissões quando recursos estão na mesma conta](service-role-managed.md).
   + Se seus recursos OpenSearch Service e Amazon Personalize estiverem em contas separadas, você cria duas funções de serviço do IAM. Você cria uma na conta com seus recursos de OpenSearch serviço e concede a ela acesso aos seus recursos OpenSearch de serviço. E crie um perfil de serviço do IAM para o OpenSearch Service e conceda a ele permissão para obter uma classificação personalizada da sua campanha do Amazon Personalize. Para obter mais informações, consulte [Configurar permissões quando os recursos estão em contas diferentes](configuring-multiple-accounts.md). 

1. Conceda ao usuário ou função que está acessando seu domínio OpenSearch de serviço `PassRole` permissões para a função de serviço do IAM que você criou para o OpenSearch Serviço. Para obter mais informações, consulte [Configurando a segurança do domínio OpenSearch do Amazon Service](domain-user-managed.md).

Depois de configurar as permissões, tudo estará pronto para instalar o plug-in no seu domínio. Para obter mais informações, consulte [Instalar o plug-in](open-search-install-managed.md).

**Topics**
+ [Configurar permissões quando recursos estão na mesma conta](service-role-managed.md)
+ [Configurar permissões quando os recursos estão em contas diferentes](configuring-multiple-accounts.md)
+ [Configurando a segurança do domínio OpenSearch do Amazon Service](domain-user-managed.md)

# Configurar permissões quando recursos estão na mesma conta
<a name="service-role-managed"></a>

Se seus recursos OpenSearch Service e Amazon Personalize estiverem na mesma conta, você deverá criar uma função de serviço do IAM para OpenSearch o Service. Essa função precisa ter permissão para obter uma classificação personalizada da sua campanha do Amazon Personalize. O seguinte é necessário para conceder permissão à sua função de OpenSearch serviço de serviço para obter uma classificação personalizada de sua campanha Amazon Personalize:
+ A política de confiança da função deve conceder `AssumeRole` permissões para o OpenSearch Serviço. Para ver um exemplo de política de confiança, consulte [Exemplo de política de confiança](#opensearch-granting-access-managed-trust-policy). 
+ A função precisa ter permissão para obter uma classificação personalizada da sua campanha do Amazon Personalize. Para ver um exemplo de política, consulte [Exemplo de política de permissões](#opensearch-granting-access-managed-permissions-policy). 

Para aprender a criar perfis do IAM, consulte [Como criar perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) no *Guia do usuário do IAM*. Para saber sobre como anexar uma política do IAM à função, consulte [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) no *Guia do usuário do IAM*.

Depois de criar uma função de serviço do IAM para o OpenSearch serviço, você deve conceder ao usuário ou função que está acessando seu domínio do OpenSearch serviço `PassRole` permissões para o papel OpenSearch de serviço do serviço. Para obter mais informações, consulte [Configurando a segurança do domínio OpenSearch do Amazon Service](domain-user-managed.md).

**Topics**
+ [Exemplo de política de confiança](#opensearch-granting-access-managed-trust-policy)
+ [Exemplo de política de permissões](#opensearch-granting-access-managed-permissions-policy)

## Exemplo de política de confiança
<a name="opensearch-granting-access-managed-trust-policy"></a>

O exemplo de política de confiança a seguir concede `AssumeRole` permissões para o OpenSearch Serviço. 

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

****  

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

------

## Exemplo de política de permissões
<a name="opensearch-granting-access-managed-permissions-policy"></a>

O exemplo de política a seguir fornece ao perfil as permissões mínimas para obter uma classificação personalizada da sua campanha do Amazon Personalize. Para `Campaign ARN`, especifique o nome do recurso da Amazon (ARN) da sua campanha do Amazon Personalize. 

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

****  

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

------

# Configurar permissões quando os recursos estão em contas diferentes
<a name="configuring-multiple-accounts"></a>

Se seus recursos do OpenSearch Service e do Amazon Personalize estiverem em contas separadas, você cria uma função do IAM em cada conta e concede à função acesso aos recursos na conta. 

**Configurar permissões para várias contas**

1. Na conta da sua campanha do Amazon Personalize, crie um perfil do IAM que tenha permissão para receber uma classificação personalizada da sua campanha do Amazon Personalize. Ao configurar o plug-in, você especifica o ARN desse perfil no parâmetro `external_account_iam_role_arn` do processador de resposta `personalized_search_ranking`. Para obter mais informações, consulte [Criar um pipeline com o Amazon OpenSearch Service](managed-opensearch-plugin-pipeline-example.md). 

   Para ver um exemplo de política, consulte [Exemplo de política de permissões](service-role-managed.md#opensearch-granting-access-managed-permissions-policy).

1. Na conta em que seu domínio OpenSearch de serviço existe, crie uma função com uma política de confiança que conceda `AssumeRole` permissões OpenSearch de serviço. Ao configurar o plug-in, você especifica o ARN desse perfil no parâmetro `iam_role_arn` do processador de resposta `personalized_search_ranking`. Para obter mais informações, consulte [Criar um pipeline com o Amazon OpenSearch Service](managed-opensearch-plugin-pipeline-example.md). 

   Para ver um exemplo de política de confiança, consulte [Exemplo de política de confiança](service-role-managed.md#opensearch-granting-access-managed-trust-policy). 

1. Modifique cada perfil para conceder permissões de `AssumeRole` a outros perfis. Por exemplo, para a função que tem acesso aos seus recursos do Amazon Personalize, sua política de IAM concederia à função na conta com o domínio OpenSearch Service assumindo as permissões de função da seguinte forma: 

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

****  

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

------

1. Na conta em que seu domínio de OpenSearch serviço existe, conceda ao usuário ou função que está acessando seu domínio de OpenSearch serviço `PassRole` permissões para a função de OpenSearch serviço de serviço que você acabou de criar. Para obter mais informações, consulte [Configurando a segurança do domínio OpenSearch do Amazon Service](domain-user-managed.md).

# Configurando a segurança do domínio OpenSearch do Amazon Service
<a name="domain-user-managed"></a>

Para usar o plug-in com o OpenSearch Serviço, o usuário ou a função que está acessando seu domínio deve ter `PassRole` permissões para a [função de serviço do IAM para o OpenSearch Serviço](service-role-managed.md) que você acabou de criar. Além disso, o usuário ou perfil precisa de permissão para executar as ações `es:ESHttpGet` e `es:ESHttpPut`.

Para obter informações sobre como configurar o acesso ao OpenSearch Serviço, consulte [Segurança no Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/security.html) no *Amazon OpenSearch Service Developer Guide*. Para obter exemplos de políticas, consulte [Exemplos de políticas para usuário ou função do OpenSearch serviço](#opensearch-domain-user-policy-examples). 

## Exemplos de políticas para usuário ou função do OpenSearch serviço
<a name="opensearch-domain-user-policy-examples"></a>

O exemplo de política do IAM a seguir concede a um usuário ou função `PassRole` permissões para a função de serviço do IAM que você criou para o OpenSearch Service in[Configurar permissões quando recursos estão na mesma conta](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"
        }
    ]
}
```

------

A política do IAM a seguir concede as permissões mínimas para criar pipelines e consultas de pesquisa com OpenSearch o Service.

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

****  

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

------

# Instalar o plug-in Classificação de pesquisas do Amazon Personalize em um domínio do OpenSearch Service.
<a name="open-search-install-managed"></a>

Depois de concluir o fluxo de trabalho do Amazon Personalize e atender aos requisitos listados em [Requisitos do plug-in](plugin-requirements.md), você poderá instalar o plug-in no seu domínio.

 Para usar o plug-in, associe o plug-in `Amazon_Personalize_Search_Ranking_Plugin` ao seu domínio. O plug-in está pré-instalado, e você não precisa importá-lo do Amazon S3. Você associa o plug-in da mesma forma que associa um pacote do OpenSearch Service. Para saber como associar um pacote do OpenSearch Service, consulte [Pacotes personalizados do Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/custom-packages.html#custom-packages-assoc). 

Depois de associar o plug-in ao seu domínio, você conseguirá configurar o plug-in. Você o configura criando um pipeline de pesquisa e especificando um processador de resposta de `personalized_search_ranking`. Para obter mais informações, consulte [Criar um pipeline](managed-opensearch-plugin-pipeline-example.md).

## Informações adicionais sobre os domínios do Amazon OpenSearch Service
<a name="opensearch-service-additional-information"></a>

Os recursos a seguir fornecem mais informações sobre o uso do domínio do Amazon OpenSearch Service. 
+ Para um tutorial breve sobre como configurar um domínio de teste, consulte [Etapa 1: Criar um domínio do Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/gsg.html#gsgcreate-domain) na seção “Introdução” do *Guia do desenvolvedor do Amazon OpenSearch Service*.
+ Para obter etapas mais detalhadas da configuração dos domínio do OpenSearch Service, consulte [Criar e gerenciar domínios do Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html).
+ Para um tutorial breve sobre como fazer upload de uma pequena quantidade de dados de teste para o OpenSearch Service, consulte [Etapa 2: Fazer upload de dados para o Amazon OpenSearch Service para indexação](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/gsg.html#gsgupload-data) na seção “Introdução” do *Guia do desenvolvedor do Amazon OpenSearch Service*.
+ Para informações completas sobre a inserção de dados, consulte [Como indexar dados no Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/indexing.html) no *Guia do desenvolvedor do Amazon OpenSearch Service*.

# Criar um pipeline com o Amazon OpenSearch Service
<a name="managed-opensearch-plugin-pipeline-example"></a>

Depois de [instalar o plug-in Classificação de pesquisas do Amazon Personalize](open-search-install-managed.md), você poderá configurá-lo criando um pipeline de pesquisas do OpenSearch. 

Um *pipeline de pesquisa* é um conjunto de processadores de solicitação e resposta executados sequencialmente na ordem em que você os criou. Na hora de criar um pipeline para o plug-in, você especifica um processador de respostas de `personalized_search_ranking`. Acesse [Pipelines de pesquisa](https://opensearch.org/docs/latest/search-plugins/search-pipelines/index/) para saber mais sobre esses pipelines. 

Depois de criar um pipeline de busca com um processador de respostas de `personalized_search_ranking`, você pode a aplicar o plug-in às consultas do OpenSearch. Você pode usá-lo com um índice do OpenSearch ou uma consulta individual do OpenSearch. Para obter mais informações, consulte [Aplicar o plug-in](managed-apply-plugin.md). 

Você pode usar o código Python a seguir para criar um pipeline de pesquisa com um processador de respostas de `personalized_search_ranking` em um domínio do OpenSearch Service. Substitua `domain endpoint` pelo URL do endpoint do seu domínio. Por exemplo: `https://<domain name>.<AWS region>.es-staging.amazonaws.com`. Para obter uma explicação completa de cada parâmetro `personalized_search_ranking`, consulte [Campos para o processador de resposta de `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}")
```

# Como aplicar o plug-in às consultas do Amazon OpenSearch Service
<a name="managed-apply-plugin"></a>

Depois de [criar um pipeline](managed-opensearch-plugin-pipeline-example.md), você poderá aplicar o plug-in Classificação de pesquisas do Amazon Personalize nas consultas. Você pode aplicar o plug-in Classificação de pesquisas do Amazon Personalize a todas as consultas e respostas de um índice. Você também pode aplicar o plug-in a consultas e respostas individuais. 
+  Você pode usar o código Python a seguir para aplicar um pipeline de pesquisa a um índice. Desse modo, todas as pesquisas com esse índice usam o plug-in para personalizar os resultados das pesquisas.

  ```
  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}")
  ```
+ Você pode usar o código Python a seguir para aplicar um pipeline de pesquisa a uma pesquisa individual por carros da Toyota.

  Atualize o código para especificar seu endpoint de domínio, seu índice do OpenSearch Service, o nome do seu pipeline e sua consulta. Para o `user_id`, especifique o ID do usuário para o qual você está obtendo resultados de pesquisa. Esse usuário deve estar nos dados que você usou para criar sua versão da solução do Amazon Personalize. Se o usuário não estiver presente, o Amazon Personalize classifica os itens com base na popularidade deles.

  Para o `context`, se você usar metadados contextuais, forneça os metadados contextuais do usuário, como o tipo de dispositivo. O campo `context` é opcional. Para obter mais informações, consulte [Como aumentar a relevância das recomendações com metadados contextuais](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}")
  ```

# Comparar os resultados personalizados do Amazon OpenSearch Service com os resultados sem personalização
<a name="managed-comparing-results"></a>

O plug-in Classificação de pesquisas do Amazon Personalize reclassifica os resultados da pesquisa com base nas classificações do Amazon Personalize e do OpenSearch. O plug-in vai reclassificar os resultados conforme você configurar o processador de respostas de `personalized_search_ranking` nos pipelines. 

Para entender a reclassificação, rode consultas com e sem personalização e compare os resultados. Você pode usar o código Python a seguir para executar as duas consultas diferentes e exportar os resultados para dois arquivos JSON. No primeiro método, a consulta usa o plug-in para reclassificar os resultados. A segunda roda um método que gera resultados sem personalização.

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

# Como monitorar o plugin com o Amazon OpenSearch Service
<a name="managed-monitor"></a>

Quando usa o plug-in Classificação das pesquisas do Amazon Personalize com as consultas do OpenSearch, você consegue monitorar o plug-in obtendo métricas para seu pipeline de pesquisa. As métricas do pipeline incluem estatísticas como o número de solicitações que não deram certo para o processador de respostas de `personalized_search_ranking`. 

 No OpenSearch Service, é possível monitorar o plug-in usando as métricas no Amazon CloudWatch. Para mais informações, consulte [Como monitorar os domínios do Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/monitoring.html). 

É possível usar o código do Python a seguir para obter métricas de todos os pipelines. Para um exemplo de métricas de pipeline, consulte [Exemplo de métricas do pipeline](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}")
```

# Personalizar os resultados do OpenSearch de código aberto com o Amazon Personalize
<a name="opensearch-open-source"></a>

Para personalizar os resultados de código aberto OpenSearch, você faz o seguinte:

1.  **Configure o Amazon Personalize** — Para isso, conclua as etapas em [Configuração do Amazon Personalize](setup.md) para configurar suas credenciais e as permissões para o Amazon Personalize. Você não precisa configurar o AWS SDKs para personalizar OpenSearch os resultados. 

1.  **Conclua o fluxo de trabalho do Amazon Personalize** — Conclua o fluxo de trabalho do Amazon Personalize para importar dados, criar uma solução com Personalized-Ranking-v a receita de 2 ou de classificação personalizada, treinar uma versão de solução personalizada e implantá-la em uma campanha. É necessário criar um conjunto de dados de interações com itens. Um conjunto de dados de usuários e um conjunto de dados de itens são opcionais. Para obter mais informações, consulte [Detalhes do fluxo de trabalho do Amazon Personalize](personalize-workflow.md).

1.  **Configure permissões** — Configure permissões para que você possa acessar seus recursos do Amazon Personalize a partir do seu OpenSearch cluster. Para obter mais informações, consulte [Configurar permissões](opensearch-granting-access.md). 

1.  **Instalar o plug-in Classificação de pesquisas do Amazon Personalize**: esse plug-in auxilia na comunicação com o Amazon Personalize e com os resultados de reclassificação do Amazon Personalize. 
   + Se você já tiver um OpenSearch cluster em execução, poderá instalar o plug-in manualmente. Para obter mais informações, consulte [Como instalar manualmente o plug-in em um cluster do OpenSearch existente](opensearch-manual-install.md).
   + Se você não criou um OpenSearch cluster, pode usar um script bash de início rápido para criar um. Para obter mais informações, consulte [Criar um novo cluster e instalar o plug-in com um script](opensearch-install-with-script.md).

1.  **Configure o plug-in Classificação de pesquisas do Amazon Personalize** — Para fazer isso, você vai criar pipelines de pesquisa. Os *pipelines de pesquisa* são conjuntos de processadores de solicitações e respostas. Na hora de criar um pipeline para o plug-in, você especifica seus recursos do Amazon Personalize em um processador de respostas do `personalized_search_ranking`. Você também configura a importância que o plug-in atribui aos resultados do Amazon Personalize quando está reclassificando os resultados. Para obter mais informações, consulte [Criar um pipeline](opensearch-plugin-pipeline-example.md). 

1.  **Aplique o plug-in Amazon Personalize Search Ranking às OpenSearch consultas — Você pode aplicar o plug-in** Amazon Personalize Search Ranking a todas as consultas e respostas de um índice. OpenSearch Você também pode aplicar o plug-in a OpenSearch consultas e respostas individuais. Para obter informações sobre como aplicar o plug-in a consultas em código aberto OpenSearch, consulte[Aplicar o plug-in](opensource-apply-plugin.md).

1.  **Compare resultados** — O plug-in Amazon Personalize Search Ranking reclassifica os resultados da pesquisa na resposta da OpenSearch consulta. Ele considera tanto a classificação do Amazon Personalize quanto a classificação de. OpenSearch Para entender a reclassificação dos resultados, compare os resultados das consultas que usam personalização e que não usam. Para obter informações sobre como comparar resultados com código aberto OpenSearch, consulte[comparar os resultados](opensource-comparing-results.md). 

1.  **Monitore o plug-in Classificação de pesquisas do Amazon Personalize** — Quando você aplica este plug-in às consultas de pesquisa, é possível monitorá-lo conferido métricas para os canais de pesquisa. Para obter informações sobre o monitoramento do plug-in em um OpenSearch cluster de código aberto, consulte[Como monitorar o plug-in com o OpenSearch de código aberto](opensource-monitor.md). Para obter um trecho das métricas do pipeline retornadas OpenSearch, consulte. [Exemplo de métricas do pipeline](monitor-response.md)

**Topics**
+ [Configurando OpenSearch permissões de código aberto](opensearch-granting-access.md)
+ [Instalar manualmente o plug-in do Amazon Personalize em um cluster do OpenSearch existente](opensearch-manual-install.md)
+ [Criar um novo cluster e instalar o plug-in com um script](opensearch-install-with-script.md)
+ [Criar um pipeline no OpenSearch de código aberto](opensearch-plugin-pipeline-example.md)
+ [Aplicar o plug-in Classificação de pesquisas do Amazon Personalize no OpenSearch de código aberto](opensource-apply-plugin.md)
+ [Comparar os resultados personalizados do OpenSearch com os resultados sem personalização](opensource-comparing-results.md)
+ [Como monitorar o plug-in com o OpenSearch de código aberto](opensource-monitor.md)

# Configurando OpenSearch permissões de código aberto
<a name="opensearch-granting-access"></a>

Se você usa código aberto OpenSearch, você deve ser capaz de acessar seus recursos do Amazon Personalize a partir do seu cluster de pesquisa aberto. Para conceder acesso, faça o seguinte:
+ Se você estiver configurando OpenSearch do zero, poderá usar um [script bash de início rápido](https://github.com/opensearch-project/search-processor/blob/main/helpers/personalized_search_ranking_quickstart.sh) para executar um OpenSearch cluster em um contêiner do Docker. O script usa as credenciais padrão em seu AWS perfil. Você pode especificar um perfil alternativo quando for rodar o script. 

  Essas credenciais devem estar associadas a um usuário ou função que tenha permissão para realizar a GetPersonalizedRanking ação da sua campanha Amazon Personalize. Para ver um exemplo de uma política do IAM, consulte [Exemplos de política do IAM](#opensearch-role-policy-example). Como alternativa, as credenciais precisam ter permissão para assumir um perfil que tenha essas permissões. Você pode fornecer o nome do recurso da Amazon (ARN) para essa função na hora de criar um pipeline para o plug-in Classificação de pesquisas do Amazon Personalize. 
+ Se você não usar o [script bash de início rápido](https://github.com/opensearch-project/search-processor/blob/main/helpers/personalized_search_ranking_quickstart.sh), poderá adicionar manualmente suas credenciais ao seu OpenSearch repositório de chaves. Essas credenciais devem corresponder a um usuário ou função que tenha permissão para realizar a GetPersonalizedRanking ação da sua campanha Amazon Personalize. 

  Para adicionar manualmente suas AWS credenciais ao seu OpenSearch armazenamento de chaves, execute o comando a seguir onde seu OpenSearch cluster está sendo executado (como um contêiner do Docker). Em seguida, informe cada credencial. Se não usar um token de sessão, você pode omitir a linha final no comando. 

  ```
  opensearch-keystore add \
  personalized_search_ranking.aws.access_key \
  personalized_search_ranking.aws.secret_key \
  personalized_search_ranking.aws.session_token
  ```
+ Se você executar seu OpenSearch cluster em uma instância do Amazon EC2, poderá conceder permissões com um perfil de instância do IAM. A política anexada à função deve conceder a ela permissão para realizar a GetPersonalizedRanking ação em sua campanha Amazon Personalize. além de permissões para o Amazon EC2 assumir o perfil. 

  Para mais informações sobre os perfis de instância do Amazon EC2, consulte [Como usar perfis de instância](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html). Para ver um exemplo de política, consulte [Exemplos de política do IAM](#opensearch-role-policy-example).

## Exemplos de política do IAM
<a name="opensearch-role-policy-example"></a>

O exemplo de política a seguir fornece a um usuário ou perfil as permissões mínimas para obter uma classificação personalizada da sua campanha do Amazon Personalize. Para `Campaign ARN`, especifique o nome do recurso da Amazon (ARN) da sua campanha do Amazon Personalize. 

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

****  

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

------

Além disso, se você executar seu OpenSearch cluster em uma instância do Amazon EC2 e conceder permissões com um perfil de instância do IAM, a política de confiança para a função deve conceder permissões ao Amazon `AssumeRole` EC2 da seguinte forma. Para mais informações sobre os perfis de instância do Amazon EC2, consulte [Como usar perfis de instância](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"
        }
    ]
}
```

------

# Instalar manualmente o plug-in do Amazon Personalize em um cluster do OpenSearch existente
<a name="opensearch-manual-install"></a>

Se você já tiver um cluster do OpenSearch, instale manualmente o plug-in no seu cluster diretamente do repositório do OpenSearch no GitHub.

**Instalar o plug-in manualmente**

1.  Use o comando a seguir para iniciar o cluster do OpenSearch: 

   ```
   bin/opensearch
   ```

1. Caso ainda não tenha feito isso, faça upload dos dados do catálogo para o cluster do OpenSearch. Quando faz upload dos seus dados, você cria um índice do OpenSearch e define seus mapeamentos de campo. Depois, você faz o upload dos dados para esse índice. Para ver um exemplo, consulte [Criar um índice e mapeamentos de campo usando dados de amostra](https://opensearch.org/docs/latest/quickstart/#create-an-index-and-field-mappings-using-sample-data). 

1. Use o comando a seguir para instalar o plug-in:

   ```
   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 saber mais sobre como instalar plug-ins, consulte [Instalar plug-ins](https://opensearch.org/docs/latest/install-and-configure/plugins/).

 Depois de instalar o plug-in Classificação de pesquisas do Amazon Personalize, será hora de configurá-lo. Para isso, é preciso criar um pipeline de pesquisa e especificar um processador de resposta de `personalized_search_ranking`. Para obter mais informações, consulte [Criar um pipeline](opensearch-plugin-pipeline-example.md).

# Criar um novo cluster e instalar o plug-in com um script
<a name="opensearch-install-with-script"></a>

Se você ainda não criou um cluster do OpenSearch, você pode usar um script em bash de início rápido para criar um. Esse script configura um cluster do OpenSearch em um contêiner do Docker, configura as credenciais usando seu perfil padrão da AWS e instala o plug-in Classificação de pesquisas do Amazon Personalize.

 Para informações sobre como criar manualmente um cluster do OpenSearch, consulte as instruções de [início rápido](https://opensearch.org/docs/quickstart) na documentação do OpenSearch. 

**Instalar o plug-in com um script em bash de início rápido**

1.  Antes de executar o script, baixe e instale o [Docker Desktop](https://docs.docker.com/get-docker/) na versão para seu sistema operacional.

1. Baixe o [script em bash de início rápido](https://github.com/opensearch-project/search-processor/blob/main/helpers/personalized_search_ranking_quickstart.sh) do GitHub.

1. No diretório de trabalho, execute o script com o comando abaixo.

   ```
   sh personalized_search_ranking_quickstart.sh
   ```

   Com este comando, o script vai usar as credenciais no seu perfil padrão da AWS. Para fornecer um perfil alternativo, use o argumento `--profile`.

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

   Depois de rodar o script, você consegue encontrar mais informações sobre o script no arquivo README, que está no diretório exclusivo criado pelo script. Esse diretório armazena os arquivos Dockerfile e .yml compostos por docker que o script usa. Por exemplo: `../opensearch-personalize-intelligent-ranking-docker.1234/README`.

1. Faça upload dos dados do catálogo para o cluster do OpenSearch. Quando faz upload dos seus dados, você cria um índice do OpenSearch e define seus mapeamentos de campo. Depois, você faz o upload dos dados para esse índice. Para ver um exemplo, consulte [Criar um índice e mapeamentos de campo usando dados de amostra](https://opensearch.org/docs/latest/quickstart/#create-an-index-and-field-mappings-using-sample-data). 

 Depois de configurar o OpenSearch e instalar o plug-in Classificação de pesquisas do Amazon Personalize, será hora de configurá-lo. Para isso, é preciso criar um pipeline de pesquisa e especificar um processador de resposta de `personalized_search_ranking`. Para obter mais informações, consulte [Criar um pipeline](opensearch-plugin-pipeline-example.md). 

# Criar um pipeline no OpenSearch de código aberto
<a name="opensearch-plugin-pipeline-example"></a>

Depois de instalar o plug-in no seu cluster, você poderá configurá-lo criando um pipeline de pesquisas do OpenSearch. 

Um *pipeline de pesquisa* é um conjunto de processadores de solicitação e resposta executados sequencialmente na ordem em que você os criou. Na hora de criar um pipeline para o plug-in, você especifica um processador de respostas de `personalized_search_ranking`. Acesse [Pipelines de pesquisa](https://opensearch.org/docs/latest/search-plugins/search-pipelines/index/) para saber mais sobre esses pipelines. 

Depois de criar um pipeline de busca com um processador de respostas de `personalized_search_ranking`, você poderá começar a aplicar o plug-in às consultas. Para obter mais informações, consulte [Aplicar o plug-in](opensource-apply-plugin.md). 

Você pode usar o comando curl a seguir para criar um pipeline de pesquisa com um processador de respostas de `personalized_search_ranking` em um cluster do OpenSearch de código aberto. Para obter uma explicação completa de cada parâmetro `personalized_search_ranking`, consulte [Campos para o processador de resposta de `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
      }
    }
  ]
}'
```

Depois de criar um pipeline de busca com um processador de respostas de `personalized_search_ranking`, você pode a aplicar o plug-in às consultas do OpenSearch. Você pode usá-lo com um índice do OpenSearch ou uma consulta individual do OpenSearch. Para obter mais informações, consulte [Aplicar o plug-in Classificação de pesquisas do Amazon Personalize no OpenSearch de código aberto](opensource-apply-plugin.md). 

# Aplicar o plug-in Classificação de pesquisas do Amazon Personalize no OpenSearch de código aberto
<a name="opensource-apply-plugin"></a>

Você pode aplicar o plug-in Classificação de pesquisas do Amazon Personalize a todas as consultas e respostas de um índice do OpenSearch. Você também pode usá-lo com consultas e respostas individuais do OpenSearch. 
+  O comando curl a seguir aplica um pipeline de pesquisa a um índice do OpenSearch em um cluster do OpenSearch de código aberto executado localmente. Desse modo, todas as pesquisas com esse índice usam o plug-in para personalizar os resultados das pesquisas.

  ```
  curl -XGET "https://localhost:9200/index/_settings" -ku 'admin:admin' --insecure -H 'Content-Type: application/json' -d'
  {
    "index.search.default_pipeline": "pipeline-name"
  }
  '
  ```
+ O comando curl a seguir aplica um pipeline de pesquisa a uma pesquisa individual por carros da Toyota em um índice de um cluster do OpenSearch de código aberto executado localmente.

   Para o `user_id`, especifique o ID do usuário para o qual você está obtendo resultados de pesquisa. Esse usuário deve estar nos dados que você usou para criar sua versão da solução do Amazon Personalize. Se o usuário não estiver presente, o Amazon Personalize classifica os itens com base na popularidade deles. Para o `context`, se você usar metadados contextuais, forneça os metadados contextuais do usuário, como o tipo de dispositivo. O campo `context` é opcional. Para obter mais informações, consulte [Como aumentar a relevância das recomendações com metadados contextuais](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 como os resultados são reclassificados, use os painéis do OpenSearch para comparar os resultados do OpenSearch com os resultados reclassificados com o plug-in. Para obter mais informações, consulte [Comparar os resultados personalizados do OpenSearch com os resultados sem personalização](opensource-comparing-results.md). 

 Quando usa o plug-in com as consultas do OpenSearch, você o monitora obtendo métricas para seu pipeline do OpenSearch. Para obter mais informações, consulte [Como monitorar o plug-in com o OpenSearch de código aberto](opensource-monitor.md). 

# Comparar os resultados personalizados do OpenSearch com os resultados sem personalização
<a name="opensource-comparing-results"></a>

Para entender como os resultados são reclassificados, execute consultas com o [console do Dev Tools](https://opensearch.org/docs/latest/dashboards/dev-tools/run-queries) em duas janelas separadas do navegador. Depois, compare os resultados com e sem personalização. 

**Comparar os resultados com o console do Dev Tools**

1. Confira se o OpenSearch Dashboards está instalado. O script em bash de início rápido instala o OpenSearch Dashboards. Se você não usa o script ou já tem um cluster que esteja rodando, instale o OpenSearch Dashboards. Para mais informações, consulte [Como instalar o OpenSearch Dashboards](https://opensearch.org/docs/latest/install-and-configure/install-dashboards/index/).

1. Abra o OpenSearch Dashboards. Abra `http://localhost:5601` em um navegador e faça login no OpenSearch Dashboards. As credenciais padrão são o nome de usuário e senha 'admin'.

1. Na página inicial do OpenSearch Dashboards, escolha **Dev Tools** no menu Gerenciamento.

1. Abra uma janela separada no navegador e acesse o console do Dev Tools de novo. Use o URL da outra janela.

1. Em uma janela, faça uma consulta sem usar nenhuma reclassificação para personalização. Na outra janela, insira um comando curl que usa um pipeline com o processador de respostas de `personalized_search_ranking`. Se você colar um comando curl diretamente no console, o comando será convertido no formato usado pelo console. Acesse para ver um exemplo de comando [Aplicar o plug-in Classificação de pesquisas do Amazon Personalize no OpenSearch de código aberto](opensource-apply-plugin.md).

1. Execute as duas consultas e compare os resultados.

# Como monitorar o plug-in com o OpenSearch de código aberto
<a name="opensource-monitor"></a>

Quando usa o plug-in Classificação das pesquisas do Amazon Personalize com as consultas do OpenSearch, você consegue monitorar o plug-in obtendo métricas para seu pipeline de pesquisa. As métricas do pipeline incluem estatísticas como o número de solicitações que não deram certo para o processador de respostas de `personalized_search_ranking`. 

 É possível usar o código a seguir para obter métricas de todos os pipelines. A resposta contém estatísticas para todos os pipelines de pesquisa. Para um exemplo de métricas de pipeline, consulte [Exemplo de métricas do pipeline](monitor-response.md).

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

# Campos para o processador de resposta de `personalized_search_ranking`
<a name="opensearch-plugin-pipeline-fields"></a>

Na hora de criar um pipeline para o plug-in Classificação de pesquisas do Amazon Personalize, você especifica um processador de respostas de `personalized_search_ranking` com os seguintes campos. 
+  **campaign\$1arn (obrigatório)** — Especifique o nome do recurso da Amazon (ARN) da campanha Amazon Personalize a ser usado para personalizar os resultados. 
+  **item\$1id\$1field (opcional)** — Se o campo `_id` de um documento indexado no OpenSearch não corresponder aos seus itemIds do Amazon Personalize, especifique o nome do campo correspondente. Por padrão, o plug-in assume que os dados de `_id` correspondem ao itemId nos seus dados do Amazon Personalize. 
+  **recipe (obrigatório)** — Especifique o nome da fórmula do Amazon Personalize a ser usada. Para usar o plug-in, você pode especificar `aws-personalized-ranking-v2` ou `aws-personalized-ranking`. 
+ **weight (obrigatório)** — Especifique a ênfase que o processador de resposta coloca na personalização ao reclassificar os resultados. Especifique um valor no intervalo entre 0,0 – 1,0. Quanto mais próximo estiver de `1.0`, maior a probabilidade de que os resultados do Amazon Personalize tenham uma classificação mais alta. Se você especificar `0.0`, nenhuma personalização ocorrerá, e o OpenSearch terá precedência.
+ **tag (opcional)** — Especifique um identificador para o processador.
+ **iam\$1role\$1arn (obrigatório para o OpenSearch Service, opcional para o OpenSearch de código aberto)**: para o OpenSearch Service, informe o nome do recurso da Amazon (ARN) do perfil que você criou ao [configurar as permissões](opensearch-granting-access-managed.md) para o OpenSearch Service acessar seus recursos do Amazon Personalize. Se seus recursos do OpenSearch Service e do Amazon Personalize fizerem parte de contas diferentes, especifique o perfil que concede permissões `AssumeRole` para o OpenSearch Service. Para obter mais informações, consulte [Configurar permissões quando os recursos estão em contas diferentes](configuring-multiple-accounts.md).

  Para o OpenSearch de código aberto, se você usar vários perfis para restringir permissões de diferentes grupos de usuários na sua empresa, especifique o ARN do perfil que tem permissão para acessar o Amazon Personalize. Se usar somente as credenciais da AWS no seu repositório de chaves do OpenSearch, você pode omitir esse campo. 
+ **aws\$1region (obrigatório)** — A região da AWS em que você criou sua campanha do Amazon Personalize.
+ **ignore\$1failure (opcional)** — Especifique se o plug-in ignora alguma falha do processador. Para valores, especifique `true` ou`false`. Para seus ambientes de produção, recomendamos que você especifique `true` para evitar interrupções nas respostas das consultas. Para ambientes de teste, especifique `false` para visualizar os erros gerados pelo plug-in.
+ **external\$1account\$1iam\$1role\$1arn**: se você usa o OpenSearch Service e seus recursos do Amazon Personalize e do OpenSearch Service fazem parte de contas diferentes, especifique o ARN do perfil que tem permissão para acessar seus recursos do Amazon Personalize. Esse perfil deve fazer parte da mesma conta dos seus recursos do Amazon Personalize. Para obter mais informações, consulte [Configurar permissões quando os recursos estão em contas diferentes](configuring-multiple-accounts.md). 

 Para conferir um exemplo do código do OpenSearch Service, consulte [Criar um pipeline com o Amazon OpenSearch Service](managed-opensearch-plugin-pipeline-example.md). Para conferir um exemplo do OpenSearch de código aberto, consulte [Criar um pipeline no OpenSearch de código aberto](opensearch-plugin-pipeline-example.md).

# Exemplo de métricas do pipeline
<a name="monitor-response"></a>

Quando usa o plug-in Classificação das pesquisas do Amazon Personalize com as consultas do OpenSearch, você consegue monitorar o plug-in obtendo métricas para seu pipeline de pesquisa. As métricas do pipeline incluem estatísticas como o número de solicitações que não deram certo para o processador de respostas de `personalized_search_ranking`. 

 O código a seguir mostra um trecho das métricas do pipeline obtidas do OpenSearch. Ele mostra somente o objeto de `pipelines` com estatísticas para dois pipelines diferentes. Para cada pipeline, você pode encontrar as métricas do plug-in Classificação de pesquisas do Amazon Personalize na lista de processadores de respostas de `personalized_search_ranking`. Para ver um exemplo completo de todas as métricas, consulte [Métricas do pipeline de pesquisa](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>
            }
          }
        }
      ]
    }
  }
....
....
}
```