

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.

# Sugerencias de consulta
<a name="query-suggestions"></a>

**nota**  
La compatibilidad de características varía según el tipo de índice y la API de búsqueda que se use. Para comprobar si esta característica es compatible con el tipo de índice y la API de búsqueda que usa, consulte [Tipos de índices](https://docs.aws.amazon.com/kendra/latest/dg/hiw-index-types.html).

*Las sugerencias de consulta* de Amazon Kendra pueden ayudar a los usuarios a escribir sus consultas de búsqueda más rápido y a guiar su búsqueda.

Amazon Kendra sugiere consultas relevantes para los usuarios en función de una de las siguientes opciones:
+ Consultas populares en el historial de consultas o en el registro de consultas
+ El contenido de los campos o atributos del documento

Puede configurar su preferencia de uso del historial de consultas o los campos del documento configurando `SuggestionTypes` como `QUERY` o `DOCUMENT_ATTRIBUTES` y llamando a [https://docs.aws.amazon.com/kendra/latest/APIReference/API_GetQuerySuggestions.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_GetQuerySuggestions.html). De forma predeterminada, Amazon Kendra utiliza el historial de consultas para basar las sugerencias. Si tanto el historial de consultas como los campos del documento están activados cuando llamas [https://docs.aws.amazon.com/kendra/latest/APIReference/API_UpdateQuerySuggestionsConfig.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_UpdateQuerySuggestionsConfig.html)y no has establecido tu `SuggestionTypes` preferencia para usar los campos del documento, Amazon Kendra utiliza el historial de consultas.

Si utiliza la consola, puede basar las sugerencias de consulta en el historial de consultas o en los campos del documento. Primero debe seleccionar su índice y, a continuación, seleccionar **Sugerencias de consulta** en la sección **Enriquecimientos** del menú de navegación. A continuación, seleccione **Configurar sugerencias de consulta**. Tras configurar las sugerencias de consulta, accederá a una consola de búsqueda en la que podrá seleccionar el **Historial de consultas** o los **Campos del documento** en el panel derecho e introducir una consulta de búsqueda en la barra de búsqueda.

De forma predeterminada, las sugerencias de consulta que utilizan el historial de consultas y los campos del documento se activan sin coste adicional. Puede desactivar este tipo de sugerencias de consulta en cualquier momento mediante la API `UpdateQuerySuggestionsConfig`. Para desactivar las sugerencias de consulta basadas en el historial de consultas, configure `Mode` en `DISABLED` al llamar a `UpdateQuerySuggestionsConfig`. Para desactivar las sugerencias de consulta basadas en los campos del documento, configure `AttributeSuggestionsMode` en `INACTIVE` en la configuración de los campos del documento y, a continuación, llame a `UpdateQuerySuggestionsConfig>`. Si usa la consola, puede desactivar las sugerencias de consulta en la **Configuración de las sugerencias de consulta**.

Las sugerencias de consulta no distinguen mayúsculas de minúsculas. Amazon Kendra convierte el prefijo de la consulta y la consulta sugerida a minúsculas, omite todas las comillas simples y dobles y reemplaza varios espacios en blanco por un solo espacio. Amazon Kendra coincide con todos los demás caracteres especiales tal como están. Amazon Kendra no muestra ninguna sugerencia si un usuario escribe menos de dos caracteres o más de 60 caracteres.

**Topics**
+ [Sugerencias de consulta mediante el historial de consultas](#query-suggestions-history)
+ [Sugerencias de consulta mediante los campos del documento](#query-suggestions-doc-fields)
+ [Bloquear determinadas consultas o contenidos de los campos del documento para que no usen en las sugerencias](#query-suggestions-blocklist)

## Sugerencias de consulta mediante el historial de consultas
<a name="query-suggestions-history"></a>

**nota**  
La compatibilidad de características varía según el tipo de índice y la API de búsqueda que se use. Para comprobar si esta característica es compatible con el tipo de índice y la API de búsqueda que usa, consulte [Tipos de índices](https://docs.aws.amazon.com/kendra/latest/dg/hiw-index-types.html).

**Topics**
+ [Configuración para seleccionar consultas para sugerencias](#query-suggestions-history-settings)
+ [Borrar las sugerencias pero conservar el historial de consultas](#query-suggestions-history-clear)
+ [No hay sugerencias disponibles](#query-suggestions-history-none)

Puede optar por sugerir consultas relevantes para sus usuarios en función de las consultas más frecuentes del historial de consultas o del registro de consultas. Amazon Kendra utiliza todas las consultas que buscan los usuarios y aprende de ellas para hacer sugerencias a los usuarios. Amazon Kendra sugiere consultas populares a los usuarios cuando empiezan a escribirlas. Amazon Kendra sugiere una consulta si el prefijo o los primeros caracteres de la consulta coinciden con lo que el usuario empieza a escribir en su consulta.

Por ejemplo, un usuario empieza a escribir la consulta “próximos eventos”. Amazon Kendra ha aprendido del historial de consultas que muchos usuarios han buscado “próximos eventos de 2050” muchas veces. El usuario ve aparecer “próximos eventos de 2050” directamente debajo de la barra de búsqueda, y completa automáticamente su consulta de búsqueda. El usuario selecciona esta sugerencia de consulta y en los resultados de búsqueda aparece el documento “Nuevos eventos: qué pasará en 2050”.

Puede especificar cómo Amazon Kendra selecciona las consultas aptas para sugerirlas a sus usuarios. Por ejemplo, puede especificar que una sugerencia de consulta debe haber sido buscada por al menos 10 usuarios únicos (el valor predeterminado es tres), debe haber sido buscada en los últimos 30 días y no debe contener palabras o frases de su [lista de bloqueados](https://docs.aws.amazon.com/kendra/latest/dg/query-suggestions.html#query-suggestions-blocklist). Amazon Kendra requiere que la consulta tenga al menos un resultado de búsqueda y que contenga al menos una palabra de más de cuatro caracteres.

### Configuración para seleccionar consultas para sugerencias
<a name="query-suggestions-history-settings"></a>

Puede configurar los siguientes ajustes para seleccionar consultas para sugerencias mediante la API [https://docs.aws.amazon.com/kendra/latest/APIReference/API_UpdateQuerySuggestionsConfig.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_UpdateQuerySuggestionsConfig.html):
+ **Modo**: las sugerencias de consulta que utilizan el historial de consultas están `ENABLED` o son `LEARN_ONLY`. Amazon Kendra activa las sugerencias de consulta de forma predeterminada. `LEARN_ONLY` desactiva las sugerencias de consulta. Si está desactivada, Amazon Kendra sigue aprendiendo las sugerencias, pero no hace sugerencias de consulta a los usuarios.
+ **Periodo de tiempo del registro de consultas**: la antigüedad de las consultas en el periodo de tiempo del registro de consultas. El periodo de tiempo es un valor entero para el número de días desde el día actual hasta los días anteriores.
+ **Consultas sin información del usuario**: debe configurarlo como `TRUE` para incluir todas las consultas, o como `FALSE` para incluir solo las consultas con información del usuario. Puede usar esta configuración si la aplicación de búsqueda incluye información del usuario, como el ID de usuario, cuando un usuario realiza una consulta. De forma predeterminada, esta configuración no filtra las consultas si no hay información del usuario específica asociada a las consultas. Sin embargo, puede usar esta configuración para hacer sugerencias basadas únicamente en las consultas que incluyan información del usuario.
+ **Usuarios únicos**: el número mínimo de usuarios únicos que deben haber buscado una consulta para que sea apta para sugerirla a sus usuarios. Este número es un valor entero.
+ **Recuento de consultas**: el número mínimo de veces que se debe haber buscado una consulta para que sea apta para sugerirla a sus usuarios. Este número es un valor entero.

Estos ajustes afectan a la forma en que se seleccionan las consultas como consultas populares para sugerirlas a sus usuarios. La forma en que debe ajustar la configuración depende de sus necesidades específicas, por ejemplo:
+ Si sus usuarios suelen buscar una vez al mes de media, puede establecer el número de días en el periodo de tiempo del registro de consultas en 30 días. Al usar esa configuración, capturará la mayoría de las consultas recientes de sus usuarios antes de que queden desactualizadas en el periodo de tiempo.
+ Si solo un número reducido de consultas incluye información del usuario y no desea sugerir consultas basadas en un tamaño de muestra pequeño, puede configurar las consultas para que incluyan a todos los usuarios.
+ Si define las consultas populares como las que han buscado al menos 10 usuarios únicos y las que se han buscado al menos 100 veces, debe establecer los usuarios únicos en 10 y el recuento de consultas en 100.

**aviso**  
Es posible que los cambios en la configuración no se apliquen de forma inmediata. Puede realizar un seguimiento de los cambios en la configuración mediante la API [https://docs.aws.amazon.com/kendra/latest/APIReference/API_DescribeQuerySuggestionsConfig.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_DescribeQuerySuggestionsConfig.html). El tiempo que tarda en surtir efecto la configuración actualizada depende de las actualizaciones que realice y del número de consultas de búsqueda de su índice. Amazon Kendra actualiza automáticamente las sugerencias cada 24 horas, después de cambiar una configuración o después de aplicar una [lista de bloqueo](https://docs.aws.amazon.com/kendra/latest/dg/query-suggestions.html#query-suggestions-blocklist).

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

**Para recuperar las sugerencias de consulta**

```
aws kendra get-query-suggestions \
 --index-id index-id \
 --query-text "query-text" \
 --suggestion-types '["QUERY"]' \
 --max-suggestions-count 1 // If you want to limit the number of suggestions
```

**Para actualizar las sugerencias de consulta**

Por ejemplo, para cambiar el periodo de tiempo del registro de consultas y el número mínimo de veces que se debe haber buscado una consulta:

```
aws kendra update-query-suggestions-config \
 --index-id index-id \
 --query-log-look-back-window-in-days 30 \
 --minimum-query-count 100
```

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

**Para recuperar las sugerencias de consulta**

```
import boto3
from botocore.exceptions import ClientError

kendra = boto3.client("kendra")

print("Get query suggestions.")

# Provide the index ID
index_id = "index-id"

# Provide the query text
query_text = "query"

# Provide the query suggestions type
query_suggestions_type = "QUERY"


# If you want to limit the number of suggestions
num_suggestions = 1
 
try:
    query_suggestions_response = kendra.get_query_suggestions(
        IndexId = index_id,
        QueryText = query_text,
        SuggestionTypes = query_suggestions_type,
        MaxSuggestionsCount = num_suggestions
    )

    # Print out the suggestions you received
    if ("Suggestions" in query_suggestions_response.keys()) {
        for (suggestion: query_suggestions_response["Suggestions"]) {
            print(suggestion["Value"]["Text"]["Text"]);
        }
    }
   
except ClientError as e:
        print("%s" % e)

print("Program ends.")
```

**Para actualizar las sugerencias de consulta**

Por ejemplo, para cambiar el periodo de tiempo del registro de consultas y el número mínimo de veces que se debe haber buscado una consulta:

```
import boto3
from botocore.exceptions import ClientError
import pprint
import time

kendra = boto3.client("kendra")

print("Updating query suggestions settings/configuration for an index.")

# Provide the index ID
index_id = "index-id"

# Configure the settings you want to update
minimum_query_count = 100
query_log_look_back_window_in_days = 30

try:
    kendra.update_query_suggestions_config(
        IndexId = index_id,
        MinimumQueryCount = minimum_query_count,
        QueryLogLookBackWindowInDays = query_log_look_back_window_in_days
    )

    print("Wait for Amazon Kendra to update the query suggestions.")

    while True:
        # Get query suggestions description of settings/configuration
        query_sugg_config_response = kendra.describe_query_suggestions_config(
            IndexId = index_id
        )
        
        # If status is not UPDATING, then quit
        status = query_sugg_config_response["Status"]
        print(" Updating query suggestions config. Status: " + status)
        if status != "UPDATING":
            break
        time.sleep(60)

except ClientError as e:
        print("%s" % e)

print("Program ends.")
```

------

### Borrar las sugerencias pero conservar el historial de consultas
<a name="query-suggestions-history-clear"></a>

**nota**  
La compatibilidad de características varía según el tipo de índice y la API de búsqueda que se use. Para comprobar si esta característica es compatible con el tipo de índice y la API de búsqueda que usa, consulte [Tipos de índices](https://docs.aws.amazon.com/kendra/latest/dg/hiw-index-types.html).

Puede borrar las sugerencias de consultas mediante la API [https://docs.aws.amazon.com/kendra/latest/APIReference/API_DescribeQuerySuggestionsConfig.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_DescribeQuerySuggestionsConfig.html). Al borrar las sugerencias, solo se eliminan las sugerencias de consulta existentes, no las consultas del historial de consultas. Al borrar las sugerencias, Amazon Kendra aprende las nuevas en función de las consultas nuevas que se hayan agregado al registro de consultas desde el momento en que las eliminaste.

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

**Para borrar las sugerencias de consulta**

```
aws  kendra clear-query-suggestions \
 --index-id index-id
```

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

**Para borrar las sugerencias de consulta**

```
import boto3
from botocore.exceptions import ClientError

kendra = boto3.client("kendra")

print("Clearing out query suggestions for an index.")

# Provide the index ID
index_id = "index-id"

try:
    kendra.clear_query_suggestions(
        IndexId = index_id
    )

    # Confirm last cleared date-time and that there are no suggestions
    query_sugg_config_response = kendra.describe_query_suggestions_config(
        IndexId = index_id
    )
    print("Query Suggestions last cleared at: " + str(query_sugg_config_response["LastClearTime"]));
    print("Number of suggestions available from the time of clearing: " + str(query_sugg_config_response["TotalSuggestionsCount"]));
        
except ClientError as e:
        print("%s" % e)

print("Program ends.")
```

------

### No hay sugerencias disponibles
<a name="query-suggestions-history-none"></a>

Si no ve sugerencias para una consulta, puede deberse a uno de los siguientes motivos:
+ No hay suficientes consultas en el índice de las Amazon Kendra que pueda aprender.
+ La configuración de las sugerencias de consulta es demasiado estricta, por lo que la mayoría de las consultas se excluyen de las sugerencias.
+ Ha aprobado las sugerencias recientemente y Amazon Kendra todavía necesita tiempo para acumular nuevas consultas y obtener nuevas sugerencias.

Puede comprobar la configuración actual mediante la API [https://docs.aws.amazon.com/kendra/latest/APIReference/API_DescribeQuerySuggestionsConfig.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_DescribeQuerySuggestionsConfig.html).

## Sugerencias de consulta mediante los campos del documento
<a name="query-suggestions-doc-fields"></a>

**Topics**
+ [Configuración para seleccionar campos para sugerencias](#query-suggestions-doc-fields-settings)
+ [Control de usuarios en los campos del documento](#query-suggestions-doc-fields-user-control)

Puede optar por sugerir consultas relevantes para sus usuarios basadas en el contenido de los campos del documento. En lugar de utilizar el historial de consultas para sugerir otras consultas relevantes y populares, puede utilizar la información contenida en un campo de documento que sea útil para completar automáticamente la consulta. Amazon Kendra busca contenido relevante en los campos configurados como la consulta del usuario `Suggestable` y que se alinee estrechamente con ella. A continuación, Amazon Kendra sugiere este contenido al usuario cuando empiece a escribir la consulta.

Por ejemplo, si especificas el campo de título en el que basar las sugerencias y un usuario empieza a escribir la consulta «Cómo Amazon Ken... ', se podría sugerir el título más relevante, «Cómo Amazon Kendra funciona», para completar automáticamente la búsqueda. El usuario ve que aparece «Cómo Amazon Kendra funciona» directamente debajo de la barra de búsqueda, lo que completa automáticamente su consulta de búsqueda. El usuario selecciona esta sugerencia de consulta y aparece el documento «Cómo Amazon Kendra funciona» en los resultados de la búsqueda.

Puede utilizar el contenido de cualquier campo del documento de tipo `String` y `StringList` para sugerir una consulta configurando el campo como `Suggestable` como parte de la configuración de campos para las sugerencias de consulta. También puede utilizar una [lista de bloqueo](https://docs.aws.amazon.com/kendra/latest/dg/query-suggestions.html#query-suggestions-blocklist) para que los usuarios no vean los campos de documentos sugeridos que contienen determinadas palabras o frases. Puede usar una única lista de bloqueo. La lista de bloqueo se aplica si configura las sugerencias de consulta para que utilicen tanto el historial de consultas como los campos del documento.

### Configuración para seleccionar campos para sugerencias
<a name="query-suggestions-doc-fields-settings"></a>

Puede configurar los siguientes ajustes para seleccionar los campos del documento para las sugerencias, utilizando [https://docs.aws.amazon.com/kendra/latest/APIReference/API_AttributeSuggestionsConfig.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_AttributeSuggestionsConfig.html) y llamando a la API [https://docs.aws.amazon.com/kendra/latest/APIReference/API_UpdateQuerySuggestionsConfig.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_UpdateQuerySuggestionsConfig.html) para actualizar los ajustes en el índice:
+ **Modo de sugerencias de campos o atributos**: las sugerencias de consulta que utilizan los campos del documento pueden estar `ACTIVE` o `INACTIVE`. Amazon Kendra activa las sugerencias de consulta de forma predeterminada.
+ **Campos o atributos que se pueden sugerir**: los nombres de los campos o las claves de campo en los que basar las sugerencias. Estos campos deben estar configurados como `TRUE` para `Suggestable`, como parte de la configuración de los campos. Puede anular la configuración de los campos en la consulta y, al mismo tiempo, mantener la configuración en el índice. Utilice la [GetQuerySuggestions](https://docs.aws.amazon.com/kendra/latest/APIReference/API_GetQuerySuggestions.html)API para realizar cambios `AttributeSuggestionConfig` en el nivel de consulta. Esta configuración de la consulta puede resultar útil para probar rápidamente el uso de diferentes campos del documento sin tener que actualizar la configuración a nivel de índice.
+ **Campos o atributos adicionales**: los campos adicionales que desea incluir en la respuesta para una sugerencia de consulta. Estos campos se utilizan para proporcionar información adicional en la respuesta; sin embargo, no se utilizan como base para las sugerencias.

**aviso**  
Es posible que los cambios en la configuración no se apliquen de forma inmediata. Puede realizar un seguimiento de los cambios en la configuración mediante la API [https://docs.aws.amazon.com/kendra/latest/APIReference/API_DescribeQuerySuggestionsConfig.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_DescribeQuerySuggestionsConfig.html). El tiempo que tarda en surtir efecto la configuración actualizada depende de las actualizaciones que realices. Amazon Kendra actualiza automáticamente las sugerencias cada 24 horas, después de cambiar una configuración o después de aplicar una [lista de bloqueados](https://docs.aws.amazon.com/kendra/latest/dg/query-suggestions.html#query-suggestions-blocklist).

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

Para recuperar las sugerencias de consulta y anular la configuración de los campos del documento en la consulta en lugar de tener que cambiar la configuración en el índice.

```
aws kendra get-query-suggestions \
 --index-id index-id \
 --query-text "query-text" \
 --suggestion-types '["DOCUMENT_ATTRIBUTES"]' \
 --attribute-suggestions-config '{"SuggestionAttributes":'["field/attribute key 1", "field/attribute key 2"]', "AdditionalResponseAttributes":'["response field/attribute key 1", "response field/attribute key 2"]'}' \
 --max-suggestions-count 1 // If you want to limit the number of suggestions
```

**Para actualizar las sugerencias de consulta**

Por ejemplo, para cambiar la configuración de los campos del documento en el índice:

```
aws kendra update-query-suggestions-config \
 --index-id index-id \
 --attribute-suggestions-config '{"SuggestableConfigList": '[{"SuggestableConfig": "_document_title", "Suggestable": true}]', "AttributeSuggestionsMode": "ACTIVE"}'
```

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

Para recuperar las sugerencias de consulta y anular la configuración de los campos del documento en la consulta en lugar de tener que cambiar la configuración en el índice.

```
import boto3
from botocore.exceptions import ClientError

kendra = boto3.client("kendra")

print("Get query suggestions.")

# Provide the index ID
index_id = "index-id"

# Provide the query text
query_text = "query"

# Provide the query suggestions type
query_suggestions_type = "DOCUMENT_ATTRIBUTES"

# Override fields/attributes configuration at query level
configuration = {"SuggestionAttributes":
    '["field/attribute key 1", "field/attribute key 2"]', 
      "AdditionalResponseAttributes":
          '["response field/attribute key 1", "response field/attribute key 2"]'
          }

# If you want to limit the number of suggestions
num_suggestions = 1

try:
    query_suggestions_response = kendra.get_query_suggestions(
        IndexId = index_id,
        QueryText = query_text,
        SuggestionTypes = [query_suggestions_type],
        AttributeSuggestionsConfig = configuration,
        MaxSuggestionsCount = num_suggestions
    )

    # Print out the suggestions you received
    if ("Suggestions" in query_suggestions_response.keys()) {
        for (suggestion: query_suggestions_response["Suggestions"]) {
            print(suggestion["Value"]["Text"]["Text"]);
        }
    }
   
except ClientError as e:
        print("%s" % e)

print("Program ends.")
```

**Para actualizar las sugerencias de consulta**

Por ejemplo, para cambiar la configuración de los campos del documento en el índice:

```
import boto3
from botocore.exceptions import ClientError
import pprint
import time

kendra = boto3.client("kendra")

print("Updating query suggestions settings/configuration for an index.")

# Provide the index ID
index_id = "index-id"

# Configure the settings you want to update at the index level
configuration = {"SuggestableConfigList": 
    '[{"SuggestableConfig": "_document_title", "Suggestable": true}]', 
       "AttributeSuggestionsMode": "ACTIVE"
       }

try:
    kendra.update_query_suggestions_config(
        IndexId = index_id,
        AttributeSuggestionsConfig = configuration
    )

    print("Wait for Amazon Kendra to update the query suggestions.")

    while True:
        # Get query suggestions description of settings/configuration
        query_sugg_config_response = kendra.describe_query_suggestions_config(
            IndexId = index_id
        )
        
        # If status is not UPDATING, then quit
        status = query_sugg_config_response["Status"]
        print(" Updating query suggestions config. Status: " + status)
        if status != "UPDATING":
            break
        time.sleep(60)

except ClientError as e:
        print("%s" % e)

print("Program ends.")
```

------

### Control de usuarios en los campos del documento
<a name="query-suggestions-doc-fields-user-control"></a>

Puede aplicar un filtrado por contexto de usuario a los campos del documento en los que desee basar las sugerencias de consulta. De este modo se filtra la información de los campos del documento en función del acceso del usuario o de su grupo a los documentos. Por ejemplo, un becario busca en el portal de la empresa y no tiene acceso a un documento empresarial de alto secreto. Por lo tanto, las consultas sugeridas basadas en el título del documento de alto secreto o en cualquier otro campo que pueda sugerirse no se muestran al becario.

Puede indexar sus documentos con una lista de control de acceso (ACL), que defina qué usuarios y grupos tienen asignado acceso a qué documentos. A continuación, puede aplicar un filtrado por contexto de usuario a los campos de sus documentos para las sugerencias de consulta. El filtrado por contexto de usuario que está configurado actualmente para su índice es el mismo filtrado por contexto de usuario que se aplica a la configuración de los campos del documento para las sugerencias de consultas. El filtrado por contexto de usuario forma parte de la configuración de los campos del documento. Debe usar [https://docs.aws.amazon.com/kendra/latest/APIReference/API_AttributeSuggestionsConfig.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_AttributeSuggestionsConfig.html) y llamar a [https://docs.aws.amazon.com/kendra/latest/APIReference/API_GetQuerySuggestions.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_GetQuerySuggestions.html).

## Bloquear determinadas consultas o contenidos de los campos del documento para que no usen en las sugerencias
<a name="query-suggestions-blocklist"></a>

Una *lista de bloqueo* Amazon Kendra impide sugerir determinadas consultas a los usuarios. Una lista de bloqueo es una lista de palabras o frases que quieres excluir de las sugerencias de consultas. Amazon Kendra excluye las consultas que contienen una coincidencia exacta de las palabras o frases de la lista de bloqueados.

Puede usar una lista de bloqueo para protegerse de las palabras o frases ofensivas que suelen aparecer en su historial de consultas o en los campos de los documentos y que Amazon Kendra podría seleccionar como sugerencias. Una lista de bloqueo también puede Amazon Kendra impedir que se sugieran consultas que contengan información que no esté lista para publicarse o anunciarse públicamente. Por ejemplo, pongamos el caso de que sus usuarios consultan con frecuencia sobre el próximo lanzamiento de un posible producto nuevo. Sin embargo, no quiere sugerir el producto porque no está preparado para lanzarlo. Puede bloquear las consultas que contengan el nombre y la información del producto para que no aparezcan en las sugerencias.

Puede crear una lista de bloqueo para las consultas mediante la API [https://docs.aws.amazon.com/kendra/latest/APIReference/API_CreateQuerySuggestionsBlockList.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_CreateQuerySuggestionsBlockList.html). Para ello debe colocar cada palabra o frase bloqueadas en una línea diferente de un archivo de texto. A continuación, carga el archivo de texto en su bucket de Amazon S3 y proporciona la ruta o ubicación del archivo Amazon S3. Amazon Kendra actualmente solo admite la creación de una lista de bloqueos.

Puedes reemplazar el archivo de texto de las palabras y frases bloqueadas en tu Amazon S3 lista. Para actualizar la lista de bloqueados Amazon Kendra, usa la [https://docs.aws.amazon.com/kendra/latest/APIReference/API_UpdateQuerySuggestionsBlockList.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_UpdateQuerySuggestionsBlockList.html)API.

Use la API [https://docs.aws.amazon.com/kendra/latest/APIReference/API_DescribeQuerySuggestionsBlockList.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_DescribeQuerySuggestionsBlockList.html) para obtener el estado de su lista de bloqueo. `DescribeQuerySuggestionsBlockList` también puede proporcionarle otra información útil, como la siguiente: 
+ Cuándo se actualizó su lista de bloqueo por última vez
+ Cuántas palabras o frases hay en su lista de bloqueo actual
+ Mensajes de error útiles al crear una lista de bloqueo

También puede usar la API [https://docs.aws.amazon.com/kendra/latest/APIReference/API_ListQuerySuggestionsBlockLists.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_ListQuerySuggestionsBlockLists.html) para obtener una lista de resúmenes de listas de bloqueo para un índice.

Para eliminar tu lista de bloqueados, usa la [DeleteQuerySuggestionsBlockList](https://docs.aws.amazon.com/kendra/latest/APIReference/API_DeleteQuerySuggestionsBlockList.html)API.

Es posible que las actualizaciones de la lista de bloqueo no surtan efecto de inmediato. Puede realizar un seguimiento de las actualizaciones mediante la API `DescribeQuerySuggestionsBlockList`.

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

**Para crear una lista de bloqueo**

```
aws kendra create-query-suggestions-block-list \
 --index-id index-id \
 --name "block-list-name" \
 --description "block-list-description" \
 --source-s3-path "Bucket=bucket-name,Key=query-suggestions/block_list.txt" \
 --role-arn role-arn
```

**Para actualizar una lista de bloqueo**

```
aws kendra update-query-suggestions-block-list \
 --index-id index-id \
 --name "new-block-list-name" \
 --description "new-block-list-description" \
 --source-s3-path "Bucket=bucket-name,Key=query-suggestions/new_block_list.txt" \
 --role-arn role-arn
```

**Para eliminar una lista de bloqueo**

```
aws kendra delete-query-suggestions-block-list \
 --index-id index-id \
 --id block-list-id
```

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

**Para crear una lista de bloqueo**

```
import boto3
from botocore.exceptions import ClientError
import pprint
import time

kendra = boto3.client("kendra")

print("Create a query suggestions block list.")

# Provide a name for the block list
block_list_name = "block-list-name"
# Provide an optional description for the block list
block_list_description = "block-list-description"
# Provide the IAM role ARN required for query suggestions block lists
block_list_role_arn = "role-arn"

# Provide the index ID
index_id = "index-id"

s3_bucket_name = "bucket-name"
s3_key = "query-suggestions/block_list.txt"
source_s3_path = {
    'Bucket': s3_bucket_name,
    'Key': s3_key
}

try:
    block_list_response = kendra.create_query_suggestions_block_list(
        Description = block_list_description,
        Name = block_list_name,
        RoleArn = block_list_role_arn,
        IndexId = index_id,
        SourceS3Path = source_s3_path
    )

    print(block_list_response)

    block_list_id = block_list_response["Id"]

    print("Wait for Amazon Kendra to create the block list.")

    while True:
        # Get block list description
        block_list_description = kendra.describe_query_suggestions_block_list(
            Id = block_list_id,
            IndexId = index_id
        )
        # If status is not CREATING, then quit
        status = block_list_description["Status"]
        print("Creating block list. Status: " + status)
        if status != "CREATING":
            break
        time.sleep(60)
        
except ClientError as e:
        print("%s" % e)

print("Program ends.")
```

**Para actualizar una lista de bloqueo**

```
import boto3
from botocore.exceptions import ClientError
import pprint
import time
                        
kendra = boto3.client("kendra")
                        
print("Update a block list for query suggestions.")

# Provide the block list name you want to update
block_list_name = "new-block-list-name"
# Provide the block list description you want to update
block_list_description = "new-block-list-description"
# Provide the IAM role ARN required for query suggestions block lists
block_list_role_arn = "role-arn"

# Provide the block list ID
block_list_id = "block-list-id"
# Provide the index ID
index_id = "index-id"
                        
s3_bucket_name = "bucket-name"
s3_key = "query-suggestions/new_block_list.txt"
source_s3_path = {
'Bucket': s3_bucket_name,
'Key': s3_key
}
                        
try:
    kendra.update_query_suggestions_block_list(
        Id = block_list_id,
        IndexId = index_id,
        Description = block_list_description,
        Name = block_list_name,
        RoleArn = block_list_role_arn,
        SourceS3Path = source_s3_path
    )
                        
    print("Wait for Amazon Kendra to update the block list.")
                        
    while True:
        # Get block list description
        block_list_description = kendra.describe_query_suggestions_block_list(
            Id = block_list_id,
            IndexId = index_id
        )
        # If status is not UPDATING, then the update has finished 
        status = block_list_description["Status"]
        print("Updating block list. Status: " + status)
        if status != "UPDATING":
            break
        time.sleep(60)
                        
except ClientError as e:
print("%s" % e)
                        
print("Program ends.")
```

**Para eliminar una lista de bloqueo**

```
import boto3
from botocore.exceptions import ClientError

kendra = boto3.client("kendra")

print("Delete a block list for query suggestions.")

# provide the block list ID
query_suggestions_block_list_id = "query-suggestions-block-list-id"
# Provide the index ID
index_id = "index-id"

try:
    kendra.delete_query_suggestions_block_list(
        Id = query_suggestions_block_list_id,
        IndexId = index_id
    )

except ClientError as e:
        print("%s" % e)

print("Program ends.")
```

------