

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á.

# Implantando Amazon Kendra
<a name="deploying"></a>

**nota**  
A compatibilidade com os recursos varia de acordo com o tipo de índice e a API de pesquisa usada. Para saber se esse recurso é compatível com o tipo de índice e a API de pesquisa que você está usando, consulte [Tipos de índice](https://docs.aws.amazon.com/kendra/latest/dg/hiw-index-types.html).

Quando chega a hora de implantar a Amazon Kendra pesquisa em seu site, fornecemos o código-fonte que você pode usar com o React para obter uma vantagem inicial em seu aplicativo. O código-fonte é fornecido gratuitamente sob uma licença modificada do MIT. Você pode usá-lo como ele está ou alterá-lo de acordo com suas necessidades. O aplicativo React fornecido é um exemplo que pode ajudar você a começar. Ele não é um aplicativo pronto para produção.

Para implantar um aplicativo de pesquisa sem código e gerar uma URL de endpoint para a página de pesquisa com controle de acesso, consulte [Amazon Kendra Experience Builder](https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html).

O código de exemplo a seguir adiciona a Amazon Kendra pesquisa a um aplicativo web React existente:
+ [https://kendrasamples.s3.amazonaws.com/kendrasamples-react-app.zip](https://kendrasamples.s3.amazonaws.com/kendrasamples-react-app.zip) — Arquivos de amostra que os desenvolvedores podem usar para criar uma experiência de pesquisa funcional em seu aplicativo web React existente.

Os exemplos são modelados de acordo com a página de pesquisa do Amazon Kendra console. Eles têm os mesmos recursos para pesquisar e exibir os resultados da pesquisa. Você pode usar o exemplo completo ou escolher apenas um dos recursos para seu próprio uso.

Para ver os três componentes da página de pesquisa no Amazon Kendra console, escolha o ícone do código (**</>**) no menu à direita. Passe o mouse sobre cada seção para ver uma breve descrição do componente e obter o URL da fonte do componente.

**Topics**
+ [Visão geral do](#example-overview)
+ [Pré-requisitos](#example-prereqs)
+ [Configurar o exemplo](#example-install)
+ [Página de pesquisa principal](#main-component)
+ [Componente de pesquisa](#search-component)
+ [Componente de resultados](#results-component)
+ [Componente de facetas](#facets-component)
+ [Componente de paginação](#pagination-component)
+ [Criando uma experiência de pesquisa sem código](deploying-search-experience-no-code.md)

## Visão geral do
<a name="example-overview"></a>

Adicione o código de exemplo a um aplicativo da Web React existente para ativar a pesquisa. O código de exemplo inclui um arquivo Readme com etapas para configurar um novo ambiente de desenvolvimento do React. Os dados de exemplo no exemplo de código podem ser usados para demonstrar uma pesquisa. Os arquivos e os componentes de pesquisa no código de exemplo são estruturados da seguinte forma:
+ Página de pesquisa principal (`Search.tsx`): essa é a página principal que contém todos os componentes. É aqui que você integra seu aplicativo com a Amazon Kendra API.
+ Barra de pesquisa: esse é o componente em que um usuário insere um termo de pesquisa e chama a função de pesquisa.
+ Resultados — Esse é o componente que exibe os resultados de. Amazon Kendra Ele tem três componentes: respostas sugeridas, resultados de perguntas frequentes e documentos recomendados.
+ Facetas: esse é o componente que mostra as facetas nos resultados da pesquisa e permite que você escolha uma faceta para restringir a pesquisa.
+ Paginação: esse é o componente que pagina a resposta do Amazon Kendra.

## Pré-requisitos
<a name="example-prereqs"></a>

Antes de começar, você precisará fazer o seguinte:
+ Node.js e npm [instalados](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). É necessária a versão 19 ou anterior do Node.js.
+ [Python 3 ou Python 2 baixados e instalados.](https://www.python.org/downloads/)
+ [SDK para Java](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup.html) ou [AWS SDK para JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/welcome.html)para fazer chamadas de API para o Amazon Kendra.
+ Uma aplicação da Web existente do React. O código de exemplo inclui um arquivo Readme com etapas para configurar um novo ambiente de desenvolvimento do React, incluindo o uso de estruturas/bibliotecas necessárias. Você também pode seguir as instruções de início rápido na [documentação do React sobre a criação de um aplicativo da Web do React](https://create-react-app.dev/docs/getting-started).
+ As bibliotecas e as dependências necessárias configuradas no ambiente de desenvolvimento. O código de exemplo inclui um arquivo Readme que lista as bibliotecas e dependências de pacotes necessárias. Isso `sass` é obrigatório, pois `node-sass` está obsoleto. Se você instalou anteriormente o `node-sass`, desinstale-o e instale o `sass`.

## Configurar o exemplo
<a name="example-install"></a>

Um procedimento completo para adicionar Amazon Kendra pesquisa a um aplicativo React está no arquivo Readme incluído no exemplo de código.

**Para começar a usar o kendrasamples-react-app arquivo.zip**

1. Certifique-se de ter concluído o [Pré-requisitos](#example-prereqs), incluindo o download e a instalação do Node.js e do npm.

1. Baixe o kendrasamples-react-app arquivo.zip e descompacte.

1. Abra o terminal e vá para `aws-kendra-example-react-app/src/services/`. Forneça suas credenciais da `local-dev-credentials.json`. Não adicione esse arquivo a nenhum repositório público.

1. Acesse `aws-kendra-example-react-app` e instale as dependências em `package.json`. Executar `npm install`.

1. Iniciar uma versão de demonstração do aplicativo no servidor local. Executar `npm start`. Você pode parar o servidor local digitando no teclado `Cmd/Ctrl + C`.

1. Você pode alterar a porta ou o host (por exemplo, endereço IP) acessando `package.json` e atualizando o host e a porta: `"start": "HOST=[host] PORT=[port] react-scripts start"`. Se você usa Windows: `"start": "set HOST=[host] && set PORT=[port] && react-scripts start"`.

1. Se você tiver um domínio de site registrado, poderá especificá-lo em `package.json` após o nome do aplicativo. Por exemplo, .`"homepage": "https://mywebsite.com"` Execute `npm install` novamente para atualizar novas dependências e, em seguida, execute `npm start`.

1. Para construir o aplicativo, execute `npm build`. Faça o upload do conteúdo do diretório de compilação para o seu provedor de host.
**Atenção**  
O aplicativo React **não** está pronto para produção. É um exemplo de implantação de um aplicativo para Amazon Kendra pesquisa.

## Página de pesquisa principal
<a name="main-component"></a>

A página de pesquisa principal (`Search.tsx`) contém todos os exemplos de componentes de pesquisa. Ele inclui o componente da barra de pesquisa para saída, os componentes de resultados para exibir a resposta da API de [Consulta](https://docs.aws.amazon.com/kendra/latest/APIReference/API_Query.html) e um componente de paginação para paginar a resposta.

## Componente de pesquisa
<a name="search-component"></a>

O componente de pesquisa fornece uma caixa de texto para inserir o texto da consulta. A função do `onSearch` é um hook que chama a função principal `Search.tsx` para fazer a chamada de API Amazon Kendra [Consulta](https://docs.aws.amazon.com/kendra/latest/APIReference/API_Query.html).

## Componente de resultados
<a name="results-component"></a>

O componente de resultados mostra a resposta da API `Query`. Os resultados são mostrados em três áreas distintas.
+ Respostas sugeridas: esses são os principais resultados retornados pela API `Query`. Ela contém até três respostas sugeridas. Na resposta, elas têm o tipo de resultado `ANSWER`.
+ Respostas de perguntas frequentes — Esses são os resultados das perguntas frequentes retornados pela resposta. FAQs são adicionados ao índice separadamente. Na resposta, elas têm o tipo de resultado `QUESTION_ANSWER`. Para obter mais informações, consulte [Perguntas e respostas](https://docs.aws.amazon.com/kendra/latest/dg/in-creating-faq.html). 
+ Documentos recomendados — Esses são documentos adicionais que Amazon Kendra retornam na resposta. Na resposta da API `Query`, elas têm o tipo de `DOCUMENT`.

Os componentes de resultados compartilham um conjunto de componentes para recursos como destaque, títulos, links e muito mais. Os componentes compartilhados devem estar presentes para que os componentes do resultado funcionem. 

## Componente de facetas
<a name="facets-component"></a>

O componente de facetas lista as facetas disponíveis nos resultados da pesquisa. Cada faceta classifica a resposta em uma dimensão específica, como autor. Você pode refinar a pesquisa para uma faceta específica escolhendo uma na lista.

Depois de selecionar uma faceta, o componente chama `Query` com um filtro de atributo que restringe a pesquisa a documentos que correspondam à faceta.

## Componente de paginação
<a name="pagination-component"></a>

O componente de paginação permite que você exiba os resultados da pesquisa da API `Query` em várias páginas. Ele chama a API `Query` com os parâmetros `PageSize` e `PageNumber` para obter uma página específica de resultados.

# Criando uma experiência de pesquisa sem código
<a name="deploying-search-experience-no-code"></a>

Você pode criar e implantar um aplicativo de Amazon Kendra pesquisa sem a necessidade de nenhum código de front-end. Amazon Kendra O *Experience Builder* ajuda você a criar e implantar um aplicativo de pesquisa totalmente funcional em alguns cliques para começar a pesquisar imediatamente. Você pode personalizar sua página de pesquisa e ajustar sua pesquisa para adaptar a experiência às necessidades de seus usuários. Amazon Kendra gera um URL de endpoint exclusivo e totalmente hospedado de sua página de pesquisa para começar a pesquisar seus documentos e. FAQs Você pode criar rapidamente uma prova de conceito da experiência de pesquisa e compartilhá-la com outras pessoas.

Use o modelo de experiência de pesquisa disponível no construtor para personalizar sua pesquisa. Você pode convidar outras pessoas para colaborar na criação de sua experiência de pesquisa ou avaliar os resultados da pesquisa para fins de ajuste. Quando a experiência de pesquisa estiver pronta para que os usuários comecem a pesquisar, é só compartilhar o URL seguro do endpoint.

## Como a pesquisa do Experience Builder funciona
<a name="how-search-experience-builder-works"></a>

O processo geral de criação de uma experiência de pesquisa é o seguinte:

1. Crie a experiência de pesquisa dando a ela um nome, uma descrição e escolhendo as fontes de dados que deseja usar para a experiência de pesquisa.

1. Você configura sua lista de usuários e grupos e, em Centro de Identidade do AWS IAM seguida, atribui a eles direitos de acesso à sua experiência de pesquisa. Você se inclui como proprietário da experiência. Para obter mais informações, consulte [Fornecer acesso à sua página de pesquisa](#access-search-experience).

1. Você abre o Amazon Kendra Experience Builder para criar e ajustar sua página de pesquisa. Compartilhe o URL do endpoint da sua experiência de pesquisa com outras pessoas a quem você atribui direitos de acesso de edição própria ou direitos de acesso de visualização e pesquisa.

Você chama a [CreateExperience](https://docs.aws.amazon.com/kendra/latest/APIReference/API_CreateExperience.html)API para criar e configurar sua experiência de pesquisa. Ao usar o console, selecione o índice e, em seguida, selecione **Experiências** no menu de navegação para configurar a experiência.

## Projete e ajuste a experiência de pesquisa
<a name="design-tune-search-experience"></a>

Depois de criar e configurar a experiência de pesquisa, abra a experiência de pesquisa usando uma URL de endpoint para começar a personalizar a pesquisa como proprietário com direitos de acesso de editor. Digitalize a consulta na caixa de pesquisa e personaliza a pesquisa usando as opções de edição no painel lateral para ver como elas se aplicam à sua página. Quando estiver pronto para publicar, selecione **Publicar**. Você também pode alternar entre **Alternar para visualização ao vivo**, para ver a versão mais recente publicada da página de pesquisa, e **Alternar para o modo de criação**, para editar ou personalizar a página de pesquisa.

Veja a seguir formas de personalizar a experiência de pesquisa.

### Filtro
<a name="search-experience-filter"></a>

Adicione pesquisa facetada ou filtre por atributos do documento. Isso inclui atributos personalizados. Você pode adicionar um filtro usando seus campos de metadados configurados. Por exemplo, para pesquisar por facetas por cada categoria de cidade, use um atributo de documento `_category` personalizado que contenha todas as categorias de cidade.

### Resposta sugerida
<a name="search-experience-suggested-answer"></a>

Adicione respostas geradas por machine learning às consultas dos usuários. Por exemplo, *“Quão difícil é esse curso?”* . Amazon Kendra pode recuperar o texto mais relevante em todos os documentos referentes à dificuldade de um curso e sugerir a resposta mais relevante.

### Perguntas frequentes
<a name="search-experience-faq"></a>

Adicione um documento de perguntas frequentes para fornecer respostas às perguntas mais frequentes. Por exemplo, *“Quantas horas faltam para concluir este curso?”* . Amazon Kendra pode usar o documento de perguntas frequentes que contém a resposta a essa pergunta e dar a resposta correta.

### Classificar
<a name="search-experience-sort"></a>

Adicione a classificação dos resultados da pesquisa para que os usuários possam organizar os resultados por relevância, hora de criação, hora da última atualização e outros critérios de classificação.

### Documentos
<a name="search-experience-documents"></a>

Configure como os documentos ou os resultados da pesquisa são exibidos na página de pesquisa. Você pode configurar quantos resultados são exibidos na página, incluir paginação, como números de página, ativar um botão de feedback do usuário e organizar como os campos de metadados do documento são exibidos em um resultado de pesquisa.

### Idioma
<a name="search-experience-language"></a>

Selecione um idioma para filtrar os resultados da pesquisa ou documentos no idioma selecionado.

### Barra de pesquisa
<a name="search-experience-search-box"></a>

Configure o tamanho e o espaço reservado para o texto da caixa de pesquisa, além de permitir sugestões de consulta.

### Ajuste de relevância
<a name="search-experience-relevance-tuning"></a>

Adicione impulsionamento aos campos de metadados do documento para dar mais peso a esses campos quando os usuários pesquisarem documentos. Você pode adicionar um peso que começa em 1 e aumenta gradualmente para 10. Você pode aumentar os tipos de campo de texto, data e numérico. Por exemplo, para dar a `_last_updated_at` e `_created_at` mais peso ou importância do que outros campos, atribua a esses campos um peso de 1 a 10, dependendo de sua importância. Você pode aplicar diferentes configurações de ajuste de relevância para cada aplicativo ou experiência de pesquisa.

## Fornecer acesso à sua página de pesquisa
<a name="access-search-experience"></a>

O acesso à sua experiência de pesquisa é feito pelo IAM Identity Center. Ao configurar sua experiência de pesquisa, você concede a outras pessoas listadas no seu diretório do Identity Center acesso à sua página de Amazon Kendra pesquisa. Eles recebem um e-mail que os orienta a fazer login usando as credenciais no IAM Identity Center para acessar a página de pesquisa. Você deve configurar o IAM Identity Center no nível da organização ou no nível do titular da conta no AWS Organizations. Para obter mais informações sobre o IAM Identity Center, consulte [Introdução ao IAM Identity Center](https://docs.aws.amazon.com/kendra/latest/dg/getting-started-aws-sso.html).

Você ativa as identidades do usuário no IAM Identity Center com a experiência de pesquisa e atribui permissões de acesso de *Visualizador* ou *Proprietário* usando a API ou o console.
+ **Visualizador**: autorizado a fazer consultas, receber sugestões de respostas relevantes para a pesquisa e contribuir com comentários sobre o Amazon Kendra para continuar melhorando a pesquisa.
+ **Proprietário**: autorizado a personalizar o design da página de pesquisa, ajustar a pesquisa e usar o aplicativo de pesquisa como *Visualizador*. Atualmente, não há suporte para desabilitar o acesso aos visualizadores no console.

Para atribuir acesso a outras pessoas à sua experiência de pesquisa, primeiro ative as identidades de usuário no IAM Identity Center com sua Amazon Kendra experiência usando o [ExperienceConfiguration](https://docs.aws.amazon.com/kendra/latest/APIReference/API_ExperienceConfiguration.html)objeto. Você especifica o nome do campo que contém os identificadores de usuários, como nome de usuário ou endereço de e-mail. Em seguida, você concede à sua lista de usuários acesso à sua experiência de pesquisa usando a [AssociateEntitiesToExperience](https://docs.aws.amazon.com/kendra/latest/APIReference/API_AssociateEntitiesToExperience.html)API e define suas permissões como *Visualizador* ou *Proprietário* usando a [AssociatePersonasToEntities](https://docs.aws.amazon.com/kendra/latest/APIReference/API_AssociatePersonasToEntities.html)API. Você especifica cada usuário ou grupo usando o [EntityConfiguration](https://docs.aws.amazon.com/kendra/latest/APIReference/API_EntityConfiguration.html)objeto e se esse usuário ou grupo é um *Visualizador* ou *Proprietário* usando o [EntityPersonaConfiguraton](https://docs.aws.amazon.com/kendra/latest/APIReference/API_EntityPersonaConfiguration.html)objeto.

Para atribuir a outras pessoas acesso à sua experiência de pesquisa usando o console, primeiro você precisa criar uma experiência e confirmar sua identidade e se você é o proprietário. Depois, você pode atribuir outros usuários ou grupos como visualizadores ou proprietários. No console, selecione seu índice e, em seguida, selecione **Experiências** no menu de navegação. Depois de criar sua experiência, você pode selecioná-la na lista. Acesse o **Gerenciamento de acesso** para atribuir usuários ou grupos como visualizadores ou proprietários.

## Configurando uma experiência de pesquisa
<a name="config-search-experience"></a>

Veja a seguir um exemplo de como configurar ou criar uma experiência de pesquisa.

------
#### [ Console ]

**Para criar uma experiência Amazon Kendra de pesquisa**

1. No painel de navegação esquerdo, em **Índices**, selecione **Experiências** e, em seguida, selecione **Criar experiência**.

1. Na página **Configurar experiência**, insira um nome e uma descrição para a experiência, escolha as fontes de conteúdo e o perfil do IAM para sua experiência. Para obter mais informações sobre as funções do IAM, consulte [Funções do IAM para Amazon Kendra experiências](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html).

1. Na página **Confirme sua identidade em um diretório do Identity Center**, selecione o ID de usuário, como seu e-mail. Se você não tiver um diretório do Identity Center, digite seu nome completo e e-mail para criar um diretório do Identity Center. Isso inclui você como usuário da experiência e atribui automaticamente a você direitos de acesso de proprietário.

1. Na página **Revisar para abrir o Experience Builder**, revise os detalhes da configuração e selecione **Criar experiência e abra o Experience Builder** para editar a página de pesquisa.

------
#### [ CLI ]

**Para criar uma experiência do Amazon Kendra **

```
aws kendra create-experience \
 --name experience-name \
 --description "experience description" \
 --index-id index-id \
 --role-arn arn:aws:iam::account-id:role/role-name \
 --configuration '{"ExperienceConfiguration":[{"ContentSourceConfiguration":{"DataSourceIds":["data-source-1","data-source-2"]}, "UserIdentityConfiguration":"identity attribute name"}]}' 

aws kendra describe-experience \
 --endpoints experience-endpoint-URL(s)
```

------
#### [ Python ]

**Para criar uma experiência do Amazon Kendra **

```
import boto3
from botocore.exceptions import ClientError
import pprint
import time

kendra = boto3.client("kendra")

print("Create an experience.")

# Provide a name for the experience
name = "experience-name"
# Provide an optional description for the experience
description = "experience description"
# Provide the index ID for the experience
index_id = "index-id"
# Provide the IAM role ARN required for Amazon Kendra experiences
role_arn = "arn:aws:iam::${account-id}:role/${role-name}"
# Configure the experience
configuration = {"ExperienceConfiguration":
        [{
            "ContentSourceConfiguration":{"DataSourceIds":["data-source-1","data-source-2"]},
            "UserIdentityConfiguration":"identity attribute name"
        }]
    }

try:
    experience_response = kendra.create_experience(
        Name = name,
        Description = description,
        IndexId = index_id,
        RoleArn = role_arn,
        Configuration = configuration
    )

    pprint.pprint(experience_response)

    experience_endpoints = experience_response["Endpoints"]

    print("Wait for Amazon Kendra to create the experience.")

    while True:
        # Get the details of the experience, such as the status
        experience_description = kendra.describe_experience(
            Endpoints = experience_endpoints
        )
        status = experience_description["Status"]
        print(" Creating experience. Status: "+status)
        time.sleep(60)
        if status != "CREATING":
            break

except  ClientError as e:
        print("%s" % e)

print("Program ends.")
```

------
#### [ Java ]

**Para criar um Amazon Kendra**

```
package com.amazonaws.kendra;

import java.util.concurrent.TimeUnit;
import software.amazon.awssdk.services.kendra.KendraClient;
import software.amazon.awssdk.services.kendra.model.CreateExperienceRequest;
import software.amazon.awssdk.services.kendra.model.CreateExperienceResponse;
import software.amazon.awssdk.services.kendra.model.DescribeExperienceRequest;
import software.amazon.awssdk.services.kendra.model.DescribeExperienceResponse;
import software.amazon.awssdk.services.kendra.model.ExperienceStatus;


public class CreateExperienceExample {

    public static void main(String[] args) throws InterruptedException {
        System.out.println("Create an experience");
        
        String experienceName = "experience-name";
        String experienceDescription = "experience description";
        String indexId = "index-id";
        String experienceRoleArn = "arn:aws:iam::account-id:role/role-name";

        KendraClient kendra = KendraClient.builder().build();
        
        CreateExperienceRequest createExperienceRequest = CreateExperienceRequest 
            .builder()
            .name(experienceName)
            .description(experienceDescription)
            .roleArn(experienceRoleArn)
            .configuration(
                ExperienceConfiguration
                    .builder()
                    .contentSourceConfiguration(
                        ContentSourceConfiguration(
                            .builder()
                            .dataSourceIds("data-source-1","data-source-2")
                            .build()
                        )
                    )
                    .userIdentityConfiguration(
                        UserIdentityConfiguration(
                            .builder()
                            .identityAttributeName("identity-attribute-name")
                            .build()
                        )
                    ).build()
            ).build();
        
        CreateExperienceResponse createExperienceResponse = kendra.createExperience(createExperienceRequest);
        System.out.println(String.format("Experience response %s", createExperienceResponse));

        String experienceEndpoints = createExperienceResponse.endpoints();

        System.out.println(String.format("Wait for Kendra to create the experience.", experienceEndpoints));
        while (true) {
            DescribeExperienceRequest describeExperienceRequest = DescribeExperienceRequest.builder().endpoints(experienceEndpoints).build();
            DescribeExperienceResponse describeEpxerienceResponse = kendra.describeExperience(describeExperienceRequest);
            ExperienceStatus status = describeExperienceResponse.status();
            TimeUnit.SECONDS.sleep(60);
            if (status != ExperienceStatus.CREATING) {
                break;
            }
        }

        System.out.println("Experience creation is complete.");
    }
}
```

------