

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.

# Creación de una experiencia de búsqueda sin código
<a name="deploying-search-experience-no-code"></a>

Puede crear e implementar una aplicación Amazon Kendra de búsqueda sin necesidad de ningún código de interfaz. Amazon Kendra *Experience Builder* le ayuda a crear e implementar una aplicación de búsqueda completamente funcional con unos pocos clics para que pueda empezar a buscar de inmediato. Puede personalizar el diseño de la página de búsqueda y ajustar la búsqueda para adaptar la experiencia a las necesidades de sus usuarios. Amazon Kendra genera una URL de punto final única y totalmente alojada de su página de búsqueda para empezar a buscar en sus documentos y FAQs. Puede crear rápidamente una prueba de concepto de su experiencia de búsqueda y compartirla con otros usuarios.

Utiliza la plantilla de experiencia de búsqueda disponible en el generador para personalizar la búsqueda. Puede invitar a otras personas a colaborar en la creación de su experiencia de búsqueda o a evaluar los resultados de la búsqueda con fines de ajuste. Una vez que la experiencia de búsqueda esté lista para que los usuarios comiencen a buscar, solo tiene que compartir la URL del punto de conexión seguro.

## Cómo funciona la búsqueda de Experience Builder
<a name="how-search-experience-builder-works"></a>

El proceso general de crear una experiencia de búsqueda es el siguiente:

1. Para crear su experiencia de búsqueda, debe asignarle un nombre, una descripción y elegir los orígenes de datos que desee utilizar en la experiencia de búsqueda.

1. Puede configurar su lista de usuarios y grupos en AWS IAM Identity Center y, a continuación, asignarles derechos de acceso a su experiencia de búsqueda. Se incluye a usted mismo como propietario de la experiencia. Para obtener más información, consulte [Proporcionar acceso a la página de búsqueda](#access-search-experience).

1. Abre el Amazon Kendra Experience Builder para diseñar y ajustar la página de búsqueda. Puede compartir la URL del punto de conexión de su experiencia de búsqueda con otras personas a las que asigne derechos de acceso propios para editar o ver la búsqueda.

Utiliza la [CreateExperience](https://docs.aws.amazon.com/kendra/latest/APIReference/API_CreateExperience.html)API para crear y configurar su experiencia de búsqueda. Si usa la consola, selecciona su índice y, a continuación, selecciona **Experiencias** en el menú de navegación para configurar su experiencia.

## Diseñe y ajuste su experiencia de búsqueda
<a name="design-tune-search-experience"></a>

Una vez que haya creado y configurado su experiencia de búsqueda, abra la experiencia de búsqueda mediante una URL de punto de conexión para empezar a personalizar la búsqueda como propietario con derechos de acceso de editor. Escribe la consulta en el cuadro de búsqueda y, a continuación, personaliza la búsqueda mediante las opciones de edición del panel lateral para ver cómo se aplican a su página. Cuando esté listo para publicar, seleccione **Publicar**. También puede cambiar entre **Cambiar a la visualización en directo**, para ver la última versión publicada de la página de búsqueda, y **Cambiar al modo de compilación**, para editar o personalizar la página de búsqueda.

Las siguientes son formas en las que puede personalizar su experiencia de búsqueda.

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

Añada una búsqueda por facetas o filtre por atributos del documento. Esto incluye atributos personalizados. Puede añadir un filtro mediante sus propios campos de metadatos configurados. Por ejemplo, para buscar facetas por cada categoría de ciudad, utilice un atributo de documento personalizado `_category` que contenga todas las categorías de ciudades.

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

Agrega respuestas generadas por machine learning a las consultas de tus usuarios. Por ejemplo, *«¿Qué tan difícil es este curso?»* . Amazon Kendra puede recuperar el texto más relevante de todos los documentos que hacen referencia a la dificultad de un curso y sugerir la respuesta más relevante.

### Preguntas frecuentes
<a name="search-experience-faq"></a>

Agregue un documento de preguntas frecuentes para proporcionar respuestas a las preguntas más frecuentes. Por ejemplo, *«¿Cuántas horas se necesitan para completar este curso?»* . Amazon Kendra puede utilizar el documento de preguntas frecuentes que contiene la respuesta a esta pregunta y dar la respuesta correcta.

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

Añada una clasificación de los resultados de la búsqueda para que los usuarios puedan organizarlos por relevancia, hora de creación, hora de la última actualización y otros criterios de clasificación.

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

Configure cómo se muestran los documentos o los resultados de la búsqueda en la página de búsqueda. Puede configurar el número de resultados que se muestran en la página, incluir la paginación (por ejemplo, los números de página), activar un botón de comentarios de los usuarios y organizar la forma en que se muestran los campos de metadatos de los documentos en los resultados de la búsqueda.

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

Seleccione un idioma para filtrar los resultados de la búsqueda o los documentos en el idioma seleccionado.

### Cuadro de búsqueda
<a name="search-experience-search-box"></a>

Configura el tamaño y el texto del marcador de posición del cuadro de búsqueda, además de permitir sugerencias de consultas.

### Ajuste de relevancia
<a name="search-experience-relevance-tuning"></a>

Añada potenciación a los campos de metadatos de los documentos para darles más peso cuando los usuarios busquen documentos. Puede añadir un peso que comience en 1 y aumente gradualmente hasta 10. Puede potenciar los tipos de campos de texto, fecha y numéricos. Por ejemplo, para dar a `_last_updated_at` y `_created_at` más peso o importancia que a otros campos, asigne a estos campos un peso de 1 a 10, según su importancia. Puede aplicar diferentes configuraciones de ajuste de relevancia para cada aplicación o experiencia de búsqueda.

## Proporcionar acceso a la página de búsqueda
<a name="access-search-experience"></a>

El acceso a su experiencia de búsqueda se realiza a través de IAM Identity Center. Cuando configura su experiencia de búsqueda, permite que otras personas incluidas en el directorio de su Centro de identidad accedan a su página Amazon Kendra de búsqueda. Estas reciben un correo electrónico en el que se les indica que inicien sesión con sus credenciales en IAM Identity Center para acceder a la página de búsqueda. Debe configurar IAM Identity Center en la organización o en el titular de la cuenta en AWS Organizations. Para obtener más información sobre configurar IAM Identity Center, consulte [Primeros pasos con IAM Identity Center](https://docs.aws.amazon.com/kendra/latest/dg/getting-started-aws-sso.html).

Puede activar las identidades de los usuarios en IAM Identity Center con su experiencia de búsqueda y asignar permisos de acceso de *Lector* o *Propietario* mediante la API o la consola.
+ **Lector**: se le permite realizar consultas, recibir sugerencias de respuestas relacionadas con su búsqueda y contribuir con sus comentarios a Amazon Kendra para seguir mejorando la búsqueda.
+ **Propietario**: se le permite personalizar el diseño de la página de búsqueda, ajustar la búsqueda y utilizar la aplicación de búsqueda como *Lector*. Actualmente, no se admite la desactivación del acceso a los lectores en la consola.

Para asignar a otras personas el acceso a su experiencia de búsqueda, primero debe activar las identidades de usuario en el Centro de Identidad de IAM con su Amazon Kendra experiencia mediante el [ExperienceConfiguration](https://docs.aws.amazon.com/kendra/latest/APIReference/API_ExperienceConfiguration.html)objeto. Debe especificar el nombre del campo que contiene los identificadores de sus usuarios, como el nombre de usuario o la dirección de correo electrónico. A continuación, concedes a tu lista de usuarios acceso a tu experiencia de búsqueda mediante la [AssociateEntitiesToExperience](https://docs.aws.amazon.com/kendra/latest/APIReference/API_AssociateEntitiesToExperience.html)API y defines sus permisos como *espectadores* o *propietarios* mediante la [AssociatePersonasToEntities](https://docs.aws.amazon.com/kendra/latest/APIReference/API_AssociatePersonasToEntities.html)API. Especificas cada usuario o grupo que usa el [EntityConfiguration](https://docs.aws.amazon.com/kendra/latest/APIReference/API_EntityConfiguration.html)objeto y si ese usuario o grupo es un *espectador* o un *propietario* que usa el [EntityPersonaConfiguraton](https://docs.aws.amazon.com/kendra/latest/APIReference/API_EntityPersonaConfiguration.html)objeto.

Para asignar a otras personas acceso a su experiencia de búsqueda mediante la consola, primero debe crear una experiencia y confirmar su identidad y que usted es el propietario. A continuación, puede asignar a otros usuarios o grupos como lectores o propietarios. En la consola, seleccione su índice y, a continuación, seleccione **Experiencias** en el menú de navegación. Tras crear la experiencia, puede seleccionarla de la lista. Vaya a **Administración de acceso** para asignar usuarios o grupos como lectores o propietarios.

## Configurar una experiencia de búsqueda
<a name="config-search-experience"></a>

A continuación se muestra un ejemplo de configuración o creación de una experiencia de búsqueda.

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

**Para crear una experiencia Amazon Kendra de búsqueda**

1. En el panel de navegación izquierdo, en **Índices**, seleccione **Experiencias** y, a continuación, seleccione **Crear experiencia**.

1. En la página **Configurar experiencia**, introduzca un nombre y una descripción para su experiencia, elija sus fuentes de contenido y elija el rol de IAM para su experiencia. Para obtener más información sobre las funciones de IAM, consulte Funciones de [IAM para Amazon Kendra conocer las](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html) experiencias.

1. En la página **Confirmar su identidad desde un directorio de Identity Center**, seleccione su ID de usuario, como su correo electrónico. Si no tiene un directorio de Identity Center, simplemente introduzca su nombre completo y su correo electrónico para crear un directorio de Identity Center. Esto lo incluye como usuario de la experiencia y le asigna automáticamente derechos de acceso de propietario.

1. En la página **Revisar para abrir Experience Builder**, revise los detalles de configuración y seleccione **Crear experiencia y abrir Experience Builder** para empezar a editar la página de búsqueda.

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

**Para crear una experiencia de 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 crear una experiencia de 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 crear un 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.");
    }
}
```

------