翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
シソーラスをインデックスに追加する
以下の手順は、シノニムを含むシソーラスファイルをインデックスに追加する方法を示しています。更新されたシソーラスファイルの効果を確認するのに最大 30 分かかる場合があります。シソーラスファイルの詳細については、シソーラスファイルの作成 を参照してください。
- Console
-
シソーラスを追加するには
-
左側のナビゲーションペインで、シノニムのリスト、シソーラスを追加するインデックスで、[Synonyms] (シノニム) を選択します。
-
[Synonym] (シノニム) ページで、[Add Thesaurus] (シソーラスを追加) を選択します。
-
[Define thesaurus] (シソーラスを定義) で、シソーラスに名前とオプションの説明を付けます。
-
「シソーラス設定」で、シソーラスファイルへのパスを指定します。 Amazon S3 ファイルは 5 MB より小さくなければなりません。
-
[IAM Role] では、ロールを選択するか、[Create a new role] を選択し、ロール名を指定して新しいロールを作成します。 Amazon Kendra このロールを使用して、 Amazon S3 ユーザーに代わってリソースにアクセスします。IAM ロールには「AmazonKendra-」というプレフィックスが付いています。
-
[Save] (保存) をクリックして設定を保存し、シソーラスを追加します。シソーラスが取り込まれると、そのシソーラスがアクティブになり、結果でシノニムが強調表示されます。シソーラスファイルの効果を確認するのに最大 30 分かかる場合があります。
-
- CLI
-
を使用して索引に類義語辞典を追加するには、以下を呼び出します。 AWS CLI
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-arnrole-arn
list-thesauri
を呼び出してシソーラスのリストを表示します。aws kendra list-thesauri \ --index-id
index-id
シソーラスの詳細を表示するには、
describe-thesaurus
を呼び出します。aws kendra describe-thesaurus \ --index-id
index-id
\ --index-idthesaurus-id
シソーラスファイルの効果を確認するのに最大 30 分かかる場合があります。
- 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."); } }