기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
코드 없이 검색 환경 구축
프런트 엔드 코드 없이 Amazon Kendra 검색 애플리케이션을 빌드하고 배포할 수 있습니다. Amazon Kendra Experience Builder를 사용하면 클릭 몇 번으로 모든 기능을 갖춘 검색 애플리케이션을 구축하고 배포하여 즉시 검색을 시작할 수 있습니다. 검색 페이지를 사용자 지정 설계하고 사용자의 필요에 맞게 검색을 조정할 수 있습니다.는 검색 페이지의 고유한 완전 호스팅 엔드포인트 URL을 Amazon Kendra 생성하여 문서 및 FAQs 검색을 시작합니다. 검색 경험에 대한 개념 증명을 신속하게 구축하여 다른 사람들과 공유할 수 있습니다.
빌더에 제공되는 검색 경험 템플릿을 사용하여 검색을 사용자 지정할 수 있습니다. 검색 경험을 구축하기 위해 협업하거나 조정 목적으로 검색 결과를 평가할 다른 사람들을 초대할 수 있습니다. 사용자가 검색을 시작할 수 있는 검색 환경이 준비되면 보안 엔드포인트 URL을 공유하기만 하면 됩니다.
검색 Experience Builder의 작동 방식
검색 경험을 구축하는 전체 프로세스는 다음과 같습니다.
-
검색 환경에 이름과 설명을 지정하고, 사용할 데이터 소스를 선택하여 검색 환경을 만듭니다.
-
에서 사용자 및 그룹 목록을 구성 AWS IAM Identity Center 한 다음 검색 환경에 액세스 권한을 할당합니다. 본인을 경험의 소유자로 포함하세요. 자세한 내용은 검색 페이지에 대한 액세스 권한 제공 단원을 참조하십시오.
-
Amazon Kendra Experience Builder를 열어 검색 페이지를 설계하고 조정합니다. 소유-편집 액세스 권한 또는 보기-검색 액세스 권한을 할당한 다른 사람들과 검색 경험의 엔드포인트 URL을 공유할 수 있습니다.
CreateExperience API를 호출하여 검색 환경을 만들고 구성합니다. 콘솔을 사용하는 경우 인덱스를 선택한 다음 탐색 메뉴에서 경험을 선택하여 경험을 구성합니다.
검색 경험을 설계하고 조정
검색 환경을 만들고 구성한 후에는 엔드포인트 URL을 사용하여 검색 환경을 열고 편집자 액세스 권한을 가진 소유자로서 검색을 사용자 지정하기 시작합니다. 검색 창에 쿼리를 입력한 다음, 사이드 패널의 편집 옵션을 사용하여 검색을 사용자 지정하여 페이지에 어떻게 적용되는지 확인합니다. 게시할 준비가 되면 게시를 선택합니다. 실시간 보기로 전환을 토글하여 검색 페이지의 최신 게시 버전을 보거나 빌드 모드로 전환을 토글하여 검색 페이지를 편집하거나 사용자 지정할 수도 있습니다.
검색 환경을 사용자 지정할 수 있는 방법은 다음과 같습니다.
필터
패싯된 검색을 추가하거나 문서 속성별로 필터링합니다. 이 항목에는 사용자 지정 속성이 포함됩니다. 자체 구성된 메타데이터 필드를 사용하여 필터를 추가할 수 있습니다. 예를 들어, 각 도시 범주별로 패싯 검색을 하려면 모든 도시 범주가 포함된 _category
사용자 지정 문서 속성을 사용합니다.
제안된 답변
기계 학습으로 생성된 답변을 사용자 쿼리에 추가합니다. 예를 들어 '이 과정은 얼마나 어렵나요?'.는 과정의 난이도를 참조하는 모든 문서에서 가장 관련성이 높은 텍스트를 Amazon Kendra 검색하고 가장 관련성이 높은 답변을 제안할 수 있습니다.
FAQ
FAQ 문서를 추가하여 자주 묻는 질문에 대한 답변을 제공합니다. 예를 들어, '이 과정을 완료하는 데 몇 시간이 걸리나요?'.는이 질문에 대한 답변이 포함된 FAQ 문서를 사용하고 정답을 제공할 Amazon Kendra 수 있습니다.
정렬
검색 결과 정렬 기능을 추가하여 사용자가 관련성, 만든 시간, 마지막 업데이트 시간 및 기타 정렬 기준에 따라 결과를 정리할 수 있도록 합니다.
문서
문서 또는 검색 결과가 검색 페이지에 표시되는 방식을 구성합니다. 페이지에 표시할 결과 수를 구성하고, 페이지 번호와 같은 페이지 매김을 포함하고, 사용자 피드백 버튼을 활성화하고, 검색 결과에 문서 메타데이터 필드가 표시되는 방식을 정렬할 수 있습니다.
Language
선택한 언어로 검색 결과 또는 문서를 필터링할 언어를 선택합니다.
검색 창
검색 창의 크기 및 자리 표시자 텍스트를 구성하고, 쿼리 제안을 허용할 수 있습니다.
관련성 조정
사용자가 문서를 검색할 때 이러한 필드에 더 많은 가중치를 부여하도록 문서 메타데이터 필드에 부스팅을 추가합니다. 1부터 10까지 점진적으로 가중치를 추가할 수 있습니다. 텍스트, 날짜 및 숫자 필드 유형을 부스팅할 수 있습니다. 예를 들어 _last_updated_at
및 _created_at
에 다른 필드보다 더 높은 가중치 또는 중요도를 부여하려면 해당 필드에 중요도에 따라 1~10의 가중치를 부여합니다. 각 검색 애플리케이션 또는 경험에 대해 서로 다른 관련성 조정 구성을 적용할 수 있습니다.
검색 페이지에 대한 액세스 권한 제공
검색 환경에 대한 액세스는 IAM Identity Center를 통해 이루어집니다. 검색 환경을 구성할 때 Identity Center 디렉터리에 나열된 다른 사용자에게 Amazon Kendra 검색 페이지에 대한 액세스 권한을 부여합니다. 해당 사용자는 IAM Identity Center의 보안 인증을 사용하여 로그인하여 검색 페이지에 액세스하도록 지시하는 이메일을 받습니다. AWS Organizations에 조직 수준 또는 계정 소유자 수준에서 IAM Identity Center를 설정해야 합니다. IAM Identity Center 설정에 대한 자세한 내용은 IAM Identity Center 시작하기를 참조하세요.
IAM Identity Center에서 검색 환경으로 사용자 ID를 활성화하고, API 또는 콘솔을 사용하여 최종 사용자 또는 소유자에게 액세스 권한을 할당합니다.
-
최종 사용자: 쿼리를 발행하고, 검색과 관련하여 제안된 답변을 받고, Amazon Kendra 에 피드백을 제공하여 검색을 지속적으로 개선할 수 있도록 허용했습니다.
-
소유자: 검색 페이지 디자인을 사용자 지정하고, 검색을 조정하고, 검색 애플리케이션을 최종 사용자로 사용하도록 허용했습니다. 콘솔에서 최종 사용자 액세스를 비활성화하는 기능은 현재 지원되지 않습니다.
다른 사람에게 검색 환경에 대한 액세스 권한을 할당하려면 먼저 ExperienceConfiguration 객체를 사용하여 IAM Identity Center에서 Amazon Kendra 사용자 ID를 활성화해야 합니다. 사용자 이름 또는 이메일 주소와 같이 사용자 식별자가 포함된 필드 이름을 지정합니다. 그런 다음 AssociateEntitiesToExperience API를 사용하여 사용자 목록에 검색 환경 액세스 권한을 부여하고 AssociatePersonasToEntities API를 사용하여 해당 권한을 최종 사용자 또는 소유자로 정의합니다. EntityConfiguration 객체를 사용하여 각 사용자 또는 그룹을 지정하고 EntityPersonaConfiguraton 객체를 사용하여 해당 사용자 또는 그룹이 최종 사용자인지 소유자인지 지정합니다.
콘솔을 사용하여 다른 사용자에게 검색 환경에 대한 액세스 권한을 할당하려면 먼저 경험을 만들고 자신의 ID와 소유자임을 확인해야 합니다. 그런 다음 다른 사용자나 그룹을 최종 사용자 또는 소유자로 할당할 수 있습니다. 콘솔에서 색인을 선택한 다음 탐색 메뉴에서 경험을 선택합니다. 경험을 만든 후 목록에서 경험을 선택할 수 있습니다. 액세스 관리로 이동하여 사용자 또는 그룹을 최종 사용자 또는 소유자로 할당합니다.
검색 환경 구성
다음은 검색 환경을 구성 또는 생성하는 예입니다.
- Console
-
Amazon Kendra 검색 환경을 생성하려면
-
왼쪽 탐색 창의 인덱스에서 경험을 선택한 다음 경험 생성을 선택합니다.
-
경험 구성 페이지에서 경험의 이름과 설명을 입력하고, 콘텐츠 소스를 선택하고, 경험에 대한 IAM 역할을 선택합니다. IAM 역할에 대한 자세한 내용은 Amazon Kendra 경험에 대한 IAM 역할을 참조하세요.
-
Identity Center 디렉터리에서 ID 확인 페이지에서 사용자 ID(예: 이메일)를 선택합니다. Identity Center 디렉터리가 없는 경우 전체 이름과 이메일을 입력하여 Identity Center 디렉터리를 생성하기만 하면 됩니다. 여기에는 경험의 사용자도 포함되며 소유자 액세스 권한이 자동으로 할당됩니다.
-
Experience Builder 열기 검토 페이지에서 구성 세부 정보를 검토하고 경험 생성 및 Experience Builder 열기를 선택하여 검색 페이지 편집을 시작합니다.
- CLI
-
Amazon Kendra
경험 생성
aws kendra create-experience \
--name experience-name
\
--description "experience description"
\
--index-id index-id
\
--role-arn arn:aws:iam::account-id:role/role-name
\
--configuration '{"ExperienceConfiguration":[{"ContentSourceConfiguration":{"DataSourceIds":["data-source-1","data-source-2"]}, "UserIdentityConfiguration":"identity attribute name"}]}'
aws kendra describe-experience \
--endpoints experience-endpoint-URL(s)
- Python
-
Amazon Kendra
경험 생성
import boto3
from botocore.exceptions import ClientError
import pprint
import time
kendra = boto3.client("kendra")
print("Create an experience.")
# Provide a name for the experience
name = "experience-name"
# Provide an optional description for the experience
description = "experience description"
# Provide the index ID for the experience
index_id = "index-id"
# Provide the IAM role ARN required for Amazon Kendra experiences
role_arn = "arn:aws:iam::${account-id}:role/${role-name}"
# Configure the experience
configuration = {"ExperienceConfiguration":
[{
"ContentSourceConfiguration":{"DataSourceIds":["data-source-1","data-source-2"]},
"UserIdentityConfiguration":"identity attribute name"
}]
}
try:
experience_response = kendra.create_experience(
Name = name,
Description = description,
IndexId = index_id,
RoleArn = role_arn,
Configuration = configuration
)
pprint.pprint(experience_response)
experience_endpoints = experience_response["Endpoints"]
print("Wait for Amazon Kendra to create the experience.")
while True:
# Get the details of the experience, such as the status
experience_description = kendra.describe_experience(
Endpoints = experience_endpoints
)
status = experience_description["Status"]
print(" Creating experience. Status: "+status)
time.sleep(60)
if status != "CREATING":
break
except ClientError as e:
print("%s" % e)
print("Program ends.")
- Java
-
를 생성하려면 Amazon Kendra
package com.amazonaws.kendra;
import java.util.concurrent.TimeUnit;
import software.amazon.awssdk.services.kendra.KendraClient;
import software.amazon.awssdk.services.kendra.model.CreateExperienceRequest;
import software.amazon.awssdk.services.kendra.model.CreateExperienceResponse;
import software.amazon.awssdk.services.kendra.model.DescribeExperienceRequest;
import software.amazon.awssdk.services.kendra.model.DescribeExperienceResponse;
import software.amazon.awssdk.services.kendra.model.ExperienceStatus;
public class CreateExperienceExample {
public static void main(String[] args) throws InterruptedException {
System.out.println("Create an experience");
String experienceName = "experience-name";
String experienceDescription = "experience description";
String indexId = "index-id";
String experienceRoleArn = "arn:aws:iam::account-id:role/role-name";
KendraClient kendra = KendraClient.builder().build();
CreateExperienceRequest createExperienceRequest = CreateExperienceRequest
.builder()
.name(experienceName)
.description(experienceDescription)
.roleArn(experienceRoleArn)
.configuration(
ExperienceConfiguration
.builder()
.contentSourceConfiguration(
ContentSourceConfiguration(
.builder()
.dataSourceIds("data-source-1","data-source-2")
.build()
)
)
.userIdentityConfiguration(
UserIdentityConfiguration(
.builder()
.identityAttributeName("identity-attribute-name")
.build()
)
).build()
).build();
CreateExperienceResponse createExperienceResponse = kendra.createExperience(createExperienceRequest);
System.out.println(String.format("Experience response %s", createExperienceResponse));
String experienceEndpoints = createExperienceResponse.endpoints();
System.out.println(String.format("Wait for Kendra to create the experience.", experienceEndpoints));
while (true) {
DescribeExperienceRequest describeExperienceRequest = DescribeExperienceRequest.builder().endpoints(experienceEndpoints).build();
DescribeExperienceResponse describeEpxerienceResponse = kendra.describeExperience(describeExperienceRequest);
ExperienceStatus status = describeExperienceResponse.status();
TimeUnit.SECONDS.sleep(60);
if (status != ExperienceStatus.CREATING) {
break;
}
}
System.out.println("Experience creation is complete.");
}
}