翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
シソーラスを更新する
シソーラスの作成後に設定を変更することができます。シソーラス名や IAM 情報などの詳細を変更できます。シソーラスファイル Amazon S3 パスの場所を変更することもできます。シソーラスファイルへのパスを変更すると、 Amazon Kendra は既存のシソーラスを、更新されたパスで指定されたシソーラスに置き換えます。
更新されたシソーラスファイルの効果を確認するのに最大 30 分かかる場合があります。
注記
シソーラスファイルに検証エラーまたは構文エラーがある場合、以前にアップロードされたシソーラスファイルは保持されます。
以下の手順は、シソーラスの詳細を変更する方法を示しています。
- Console
-
シソーラスの詳細を変更するには
-
左側のナビゲーションペインの変更するインデックスで、[Synonyms] (シノニム) を選択します。
-
[Synonym] (シノニム) ページで、変更するシソーラスを選択し、[Edit] (編集) を選択します。
-
[Update thesaurus] (シソーラスを更新) ページで、シソーラスの詳細を更新します。
-
(オプション) シソーラスファイルパスを変更を選択し、新しいシソーラスファイルへの Amazon S3 パスを指定します。既存のシソーラスファイルは、指定したファイルに置き換えられます。パスを変更しない場合、 は既存のパスからシソーラス Amazon Kendra を再ロードします。
現在のシソーラスファイルを保持 を選択した場合、 Amazon Kendra はシソーラスファイルを再ロードしません。
-
[Save] (保存) を選択して設定を保存します。
既存のシソーラスパスからシソーラスをリロードすることもできます。
既存のパスからシソーラスをリロードするには
-
左側のナビゲーションペインの変更するインデックスで、[Synonyms] (シノニム) を選択します。
-
[シノニム] ページで、リロードするシソーラスを選択し、[更新] を選択します。
-
[シソーラスファイルのリロード] ページで、シソーラスファイルを更新することを確認します。
-
- CLI
-
シソーラスを更新するには、
update-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-arnrole-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."); } }