Actualización de un diccionario - Amazon Kendra

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.

Actualización de un diccionario

Puede cambiar la configuración de un tesauro después de crearlo. Puede cambiar los detalles, como el nombre del tesauro y la información de IAM. También puede cambiar la ubicación de la ruta de Amazon S3 del archivo de tesauro. Si cambia la ruta del archivo de tesauro,Amazon Kendrasustituye el tesauro existente por el tesauro especificado en la ruta actualizada.

Puede tardar hasta 30 minutos en ver los efectos de su archivo de tesauro actualizado.

nota

Si hay errores de validación o sintaxis en el archivo de tesauro, se conserva el archivo de tesauro cargado anteriormente.

Los procedimientos que se describen a continuación muestran cómo modificar los detalles del tesauro.

Console

Para modificar los detalles del tesauro

  1. En el panel de navegación izquierdo, en el índice que desea modificar, elijaSinónimos.

  2. En la páginaSinónimo, seleccione el diccionario de sinónimos que desea modificar y elijaEditar.

  3. En la páginaUpdate thesaurus, actualiza los detalles del tesauro.

  4. (Opcional) ElijaCambiar la ruta del archivo de tesauroy, a continuación, especificar unAmazon S3ruta al nuevo archivo de diccionario. El archivo de tesauro existente se sustituye por el archivo que especifique. Si no cambia el camino,Amazon Kendravuelve a cargar el tesauro desde la ruta existente.

    Si seleccionaConservar el archivo de tesauro actual,Amazon Kendrano recarga el archivo de sinónimos.

  5. ElegirGuardarpara guardar la configuración.

También puedes volver a cargar el tesauro desde la ruta del tesauro existente.

Para volver a cargar un tesauro desde una ruta existente

  1. En el panel de navegación izquierdo, en el índice que desea modificar, elijaSinónimos.

  2. En la páginaSinónimo, selecciona el diccionario de sinónimos que quieres volver a cargar y luego eligeReload (Volver a cargar).

  3. En la páginaVolver a cargar el archivo de diccionario, confirma que quieres volver a cargar el archivo de tesauro.

CLI

Para actualizar un diccionario, llame aupdate-thesaurus:

aws kendra update-thesaurus \ --index-id index-id \ --name "thesaurus-name" \ --description "thesaurus-description" \ --source-s3-path "Bucket=bucket-name,Key=thesaurus/synonyms.txt" \ --role-arn role-arn
Python
import boto3 from botocore.exceptions import ClientError import pprint import time kendra = boto3.client("kendra") print("Update a thesaurus") thesaurus_name = "thesaurus-name" thesaurus_description = "thesaurus-description" thesaurus_role_arn = "role-arn" thesaurus_id = "thesaurus-id" index_id = "index-id" s3_bucket_name = "bucket-name" s3_key = "thesaurus-file" source_s3_path= { 'Bucket': s3_bucket_name, 'Key': s3_key } try: kendra.update_thesaurus( Id = thesaurus_id, IndexId = index_id, Description = thesaurus_description, Name = thesaurus_name, RoleArn = thesaurus_role_arn, SourceS3Path = source_s3_path ) print("Wait for Kendra to update the thesaurus.") while True: # Get thesaurus description thesaurus_description = kendra.describe_thesaurus( Id = thesaurus_id, IndexId = index_id ) # If status is not UPDATING quit status = thesaurus_description["Status"] print("Updating thesaurus. Status: " + status) if status != "UPDATING": break time.sleep(60) except ClientError as e: print("%s" % e) print("Program ends.")
Java
package com.amazonaws.kendra; import software.amazon.awssdk.services.kendra.KendraClient; import software.amazon.awssdk.services.kendra.model.UpdateThesaurusRequest; import software.amazon.awssdk.services.kendra.model.DescribeThesaurusRequest; import software.amazon.awssdk.services.kendra.model.DescribeThesaurusResponse; import software.amazon.awssdk.services.kendra.model.S3Path; import software.amazon.awssdk.services.kendra.model.ThesaurusStatus; public class UpdateThesaurusExample { public static void main(String[] args) throws InterruptedException { KendraClient kendra = KendraClient.builder().build(); String thesaurusName = "thesaurus-name"; String thesaurusDescription = "thesaurus-description"; String thesaurusRoleArn = "role-arn"; String s3BucketName = "bucket-name"; String s3Key = "thesaurus-file"; String thesaurusId = "thesaurus-id"; String indexId = "index-id"; UpdateThesaurusRequest updateThesaurusRequest = UpdateThesaurusRequest .builder() .id(thesaurusId) .indexId(indexId) .name(thesaurusName) .description(thesaurusDescription) .roleArn(thesaurusRoleArn) .sourceS3Path(S3Path.builder() .bucket(s3BucketName) .key(s3Key) .build()) .build(); kendra.updateThesaurus(updateThesaurusRequest); System.out.println(String.format("Waiting until the thesaurus with ID %s is updated.", thesaurusId)); // a new source s3 path requires re-consumption by Kendra // and so can take as long as a Create Thesaurus operation while (true) { DescribeThesaurusRequest describeThesaurusRequest = DescribeThesaurusRequest.builder() .id(thesaurusId) .indexId(indexId) .build(); DescribeThesaurusResponse describeThesaurusResponse = kendra.describeThesaurus(describeThesaurusRequest); ThesaurusStatus status = describeThesaurusResponse.status(); if (status != ThesaurusStatus.UPDATING) { break; } TimeUnit.SECONDS.sleep(60); } System.out.println("Thesaurus update is complete."); } }