인덱스에 사전 추가 - Amazon Kendra

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

인덱스에 사전 추가

다음 절차는 인덱스에 동의어가 포함된 사전 파일을 추가하는 방법을 보여줍니다. 업데이트된 사전 파일의 효과를 확인하는 데 최대 30분이 소요될 수 있습니다. 사전 파일에 대한 자세한 내용은 사전 파일 생성를 참조하세요.

Console
사전을 추가하려면
  1. 왼쪽 탐색 창의 동의어 목록을 추가할 인덱스 아래에서, 사전, 동의어를 선택합니다.

  2. 동의어 페이지에서 사전 추가를 선택합니다.

  3. 사전 정의에서 사전의 이름과 선택적 설명을 입력합니다.

  4. 사전 설정에서 사전 파일의 경로를 입력합니다. Amazon S3 파일은 5MB보다 작아야 합니다.

  5. IAM 역할의 경우 역할을 선택하거나 새 역할 생성을 선택하고 역할 이름을 지정하여 새 역할을 생성합니다. Amazon Kendra 이 역할을 사용하여 사용자를 대신하여 Amazon S3 리소스에 액세스합니다. IAM 역할의 접두사는 "AmazonKendra- “입니다.

  6. 저장을 선택하여 구성을 저장하고 사전을 추가합니다. 사전이 수집되면 해당 사전이 활성화되고 동의어가 결과에 강조 표시됩니다. 사전 파일의 효과를 확인하는 데 최대 30분이 소요될 수 있습니다.

CLI

를 사용하여 색인에 동의어 사전을 추가하려면 다음을 호출하십시오. AWS CLIcreate-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

list-thesauri를 호출하면 사전 목록을 볼 수 있습니다.

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

사전의 세부 정보를 보려면 다음을 호출합니다. describe-thesaurus

aws kendra describe-thesaurus \ --index-id index-id \ --index-id thesaurus-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."); } }