Ajouter un thésaurus à un index - Amazon Kendra

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Ajouter un thésaurus à un index

Les procédures suivantes indiquent comment ajouter un fichier de thésaurus contenant des synonymes à un index. Les effets de la mise à jour de votre fichier de thésaurus peuvent prendre jusqu'à 30 minutes. Pour plus d'informations sur le fichier de thésaurus, consultezCréation d'un fichier de thésaurus.

Console
Pour ajouter un thésaurus
  1. Dans le volet de navigation de gauche, sous l'index dans lequel vous souhaitez ajouter une liste de synonymes, dans votre thésaurus, choisissez Synonymes.

  2. Sur la page des synonymes, choisissez Ajouter un thésaurus.

  3. Dans Définir le thésaurus, donnez un nom à votre thésaurus et une description facultative.

  4. Dans les paramètres du thésaurus, indiquez le Amazon S3 chemin d'accès à votre fichier de thésaurus. La taille du fichier doit être inférieure à 5 Mo.

  5. Pour le rôle IAM, sélectionnez un rôle ou sélectionnez Créer un nouveau rôle et spécifiez un nom de rôle pour créer un nouveau rôle. Amazon Kendra utilise ce rôle pour accéder à la Amazon S3 ressource en votre nom. Le rôle IAM porte le préfixe « AmazonKendra - ».

  6. Choisissez Enregistrer pour enregistrer la configuration et ajouter le thésaurus. Une fois le thésaurus ingéré, il est actif et les synonymes sont mis en évidence dans les résultats. Les effets de votre fichier de thésaurus peuvent prendre jusqu'à 30 minutes.

CLI

Pour ajouter un thésaurus à un index avec le AWS CLI, appelez create-thesaurus :

aws kendra create-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

Appelez list-thesauri pour consulter la liste des thésaurus :

aws kendra list-thesauri \ --index-id index-id

Pour consulter les détails d'un thésaurus, appelez describe-thesaurus :

aws kendra describe-thesaurus \ --index-id index-id \ --index-id thesaurus-id

Les effets de votre fichier de thésaurus peuvent prendre jusqu'à 30 minutes.

Python
import boto3 from botocore.exceptions import ClientError import pprint import time kendra = boto3.client("kendra") print("Create a thesaurus") thesaurus_name = "thesaurus-name" thesaurus_description = "thesaurus-description" thesaurus_role_arn = "role-arn" index_id = "index-id" s3_bucket_name = "bucket-name" s3_key = "thesaurus-file" source_s3_path= { 'Bucket': s3_bucket_name, 'Key': s3_key } try: thesaurus_response = kendra.create_thesaurus( Description = thesaurus_description, Name = thesaurus_name, RoleArn = thesaurus_role_arn, IndexId = index_id, SourceS3Path = source_s3_path ) pprint.pprint(thesaurus_response) thesaurus_id = thesaurus_response["Id"] print("Wait for Kendra to create the thesaurus.") while True: # Get thesaurus description thesaurus_description = kendra.describe_thesaurus( Id = thesaurus_id, IndexId = index_id ) # If status is not CREATING quit status = thesaurus_description["Status"] print("Creating thesaurus. Status: " + status) if status != "CREATING": 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.CreateThesaurusRequest; import software.amazon.awssdk.services.kendra.model.CreateThesaurusResponse; 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 CreateThesaurusExample { 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 indexId = "index-id"; System.out.println(String.format("Creating a thesaurus named %s", thesaurusName)); CreateThesaurusRequest createThesaurusRequest = CreateThesaurusRequest .builder() .name(thesaurusName) .indexId(indexId) .description(thesaurusDescription) .roleArn(thesaurusRoleArn) .sourceS3Path(S3Path.builder() .bucket(s3BucketName) .key(s3Key) .build()) .build(); CreateThesaurusResponse createThesaurusResponse = kendra.createThesaurus(createThesaurusRequest); System.out.println(String.format("Thesaurus response %s", createThesaurusResponse)); String thesaurusId = createThesaurusResponse.id(); System.out.println(String.format("Waiting until the thesaurus with ID %s is created.", thesaurusId)); while (true) { DescribeThesaurusRequest describeThesaurusRequest = DescribeThesaurusRequest.builder() .id(thesaurusId) .indexId(indexId) .build(); DescribeThesaurusResponse describeThesaurusResponse = kendra.describeThesaurus(describeThesaurusRequest); ThesaurusStatus status = describeThesaurusResponse.status(); if (status != ThesaurusStatus.CREATING) { break; } TimeUnit.SECONDS.sleep(60); } System.out.println("Thesaurus creation is complete."); } }