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.
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
-
En el panel de navegación izquierdo, en el índice que desea modificar, elijaSinónimos.
-
En la páginaSinónimo, seleccione el diccionario de sinónimos que desea modificar y elijaEditar.
-
En la páginaUpdate thesaurus, actualiza los detalles del tesauro.
-
(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.
-
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
-
En el panel de navegación izquierdo, en el índice que desea modificar, elijaSinónimos.
-
En la páginaSinónimo, selecciona el diccionario de sinónimos que quieres volver a cargar y luego eligeReload (Volver a cargar).
-
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.");
}
}