기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Kendra 자체 관리를 위한 지능형 랭킹 OpenSearch
Amazon Kendra의 시맨틱 검색 기능을 활용하여 Apache 2.0 라이선스를 기반으로 하는 자체 관리형 오픈 소스 검색 서비스의 검색 결과를 개선할 수 있습니다. OpenSearch
'main keynote address'라는 쿼리를 예로 들어 보겠습니다. '주소'에는 여러 가지 의미가 있으므로 쿼리의 의미를 유추하여 의도한 의미와 일치하는 관련 정보를 반환할 Amazon Kendra 수 있습니다. 이 맥락에서는, 컨퍼런스 기조 연설입니다. 예를 들어 단순한 검색 서비스는 의도를 고려하지 않아 메인 스트리트에 있는 도로명 주소에 대한 결과를 반환할 수 있습니다.
용 OpenSearch 인텔리전트 랭킹 플러그인은 OpenSearch (자체 관리형) 버전 2.4.0 이상에서 사용할 수 있습니다. 퀵 스타트 Bash 스크립트를 사용하여 플러그인을 설치하여 인텔리전트 랭킹 플러그인이 OpenSearch 포함된 새 Docker 이미지를 빌드할 수 있습니다. 지능형 검색 플러그인 설정 참조 - 빠르게 시작하고 실행할 수 있는 설정의 예입니다.
지능형 검색 플러그인 작동 방식
OpenSearch (자체 관리형) 용 인텔리전트 랭킹 플러그인의 전체 프로세스는 다음과 같습니다.
-
OpenSearch 사용자가 쿼리를 실행하고 쿼리 응답 또는 쿼리와 관련된 문서 목록을 OpenSearch 제공합니다.
-
Intelligent Ranking 플러그인은 쿼리 응답을 받아 문서에서 정보를 추출합니다.
-
인텔리전트 랭킹 플러그인은 Amazon Kendra 인텔리전트 랭킹의 Rescore API를 호출합니다.
-
Rescore
API는 문서에서 추출된 정보를 가져와 검색 결과의 순위를 의미적으로 다시 매깁니다. -
Rescore
API는 순위가 다시 매겨진 검색 결과를 플러그인에 다시 보냅니다. 플러그인은 새로운 시맨틱 순위를 반영하도록 검색 응답의 OpenSearch 검색 결과를 재정렬합니다.
Intelligent Ranking 플러그인은 “본문” 및 “제목” 필드를 사용하여 결과의 순위를 다시 매깁니다. 이러한 플러그인 필드를 문서 본문 및 제목의 정의에 가장 적합한 OpenSearch 색인의 필드에 매핑할 수 있습니다. 예를 들어 인덱스에 “chapter_heading” 및 “chapter_contents”와 같은 필드가 있는 책의 장이 포함되어 있는 경우 전자를 “제목”에 매핑하고 후자를 “본문”에 매핑하여 최상의 결과를 얻을 수 있습니다.
지능형 검색 플러그인 설정
다음은 인텔리전트 랭킹 플러그인을 사용하여 신속하게 설정 OpenSearch (자체 관리) 하는 방법을 간략하게 설명합니다.
인텔리전트 랭킹 플러그인으로 설정 OpenSearch (자체 관리) (빠른 설정)
이미 Docker 이미지를 opensearch:2.4.0
사용하고 있다면 이 Dockerfile을 사용하여 인텔리전트 랭킹 플러그인으로 OpenSearch 2.4.0의 새 이미지를 빌드할 수 있습니다. docker-compose.yml 파일 또는 opensearch.yml 파일에 새 이미지를 위한 컨테이너를 포함합니다. 재평가 실행 계획을 만들 때 생성된 재평가 실행 계획 ID를 리전 및 엔드포인트 정보와 함께 포함시킬 수도 있습니다. 재평가 실행 계획을 만들려면 2단계를 참조하세요.
2.4.0 이전의 opensearch
도커 이미지 버전을 이전에 다운로드한 경우 도커 이미지 opensearch:2.4.0
이상을 사용하고 Intelligent Ranking 플러그인이 포함된 새 이미지를 빌드해야 합니다.
-
사용 중인 운영 체제용 Docker Desktop
을 다운로드하여 설치합니다. Docker Desktop에는 Docker Compose 및 Docker Engine이 포함되어 있습니다. 컴퓨터가 Docker 설치 세부 정보에 언급된 시스템 요구 사항을 충족하는지 확인하는 것이 좋습니다. Docker 데스크톱의 설정에서 메모리 사용 요구 사항을 늘릴 수도 있습니다. 무료로 제공되는 Docker 서비스 사용 한도 이외의 Docker 사용 요구 사항은 사용자의 책임입니다. Docker 구독
을 참조하세요. Docker 데스크톱 상태가 “실행 중”인지 확인하세요.
-
Amazon Kendra 인텔리전트 랭킹 및 용량 요구 사항을 제공하세요. Amazon Kendra Intelligent Ranking을 프로비저닝하면 설정된 용량 단위를 기준으로 시간당 요금이 부과됩니다. 프리 티어 및 요금 정보
를 참조하세요. CreateRescoreExecutionPlanAPI를 사용하여 프로비저닝합니다
Rescore API
. 단일 단위 기본값보다 더 많은 용량 단위가 필요하지 않은 경우 단위를 더 추가하지 말고 재평가 실행 계획의 이름만 제공하세요. UpdateRescoreExecutionPlanAPI를 사용하여 용량 요구 사항을 업데이트할 수도 있습니다. 자세한 내용은 검색 서비스 결과의 의미론적 순위 지정을 참조하세요.필요한 경우 빠른 시작 Bash 스크립트를 실행할 때 3단계로 이동하여 기본 재평가 실행 계획을 만들 수 있습니다.
4단계의 경우 응답에 포함된 재평가 실행 계획 ID를 참고하세요.
-
기본 브랜치 드롭다운에서 GitHub 버전 브랜치를 OpenSearch 선택하여 사용 중인 버전의 퀵 스타트 Bash 스크립트를
다운로드하십시오. 이 스크립트는 스크립트용 GitHub 리포지토리에서 선택한 버전을 사용하는 Docker OpenSearch 이미지와 OpenSearch 대시보드를 사용합니다. 인텔리전트 랭킹 플러그인용 zip 파일을 다운로드하고 플러그인이 OpenSearch 포함된 새 Docker 이미지를
Dockerfile
빌드하기 위한 zip 파일을 생성합니다. 또한 인텔리전트 랭킹 플러그인 및 대시보드를 위한 OpenSearch 컨테이너가 포함된 docker-compose.yml 파일을 생성합니다. OpenSearch 스크립트는 재평가 실행 계획 ID, 리전 정보, 엔드포인트(리전 사용)를 docker-compose.yml 파일에 추가합니다. 그런 다음 스크립트를docker-compose up
실행하여 인텔리전트 랭킹 및 대시보드가 포함된 컨테이너를 시작합니다. OpenSearch OpenSearch 컨테이너를 제거하지 않고 중지하려면docker-compose stop
를 실행하세요. 컨테이너를 제거하려면docker-compose down
를 실행합니다. -
터미널을 열고 Bash 스크립트의 디렉터리에서 다음 명령을 실행합니다.
bash search_processing_kendra_quickstart.sh -p <
execution-plan-id
> -r <region
>이 명령을 실행할 때는 Amazon Kendra 인텔리전트 랭킹을 프로비저닝할 때 2단계에서 기록해 둔 재점수 실행 계획 ID를 지역 정보와 함께 제공합니다.
--create-execution-plan
옵션을 사용하여 Amazon Kendra Intelligent Ranking을 대신 프로비저닝할 수도 있습니다. 이렇게 하면 기본 이름과 기본 용량을 사용하여 재평가 실행 계획이 생성됩니다.기본 임시 컨테이너를 제거해도 인덱스가 손실되지 않도록 하려면
--volume-name
옵션을 사용하여 데이터 볼륨 이름을 제공하여 실행 시에도 인덱스가 지속되도록 할 수 있습니다. 이전에 인덱스를 만든 경우 docker-compose.yml 또는 opensearch.yml 파일에서 볼륨을 지정할 수 있습니다. 볼륨을 그대로 두려면docker-compose down -v
를 실행하지 마세요.퀵 스타트 배쉬 스크립트는 인텔리전트 랭킹에 연결되도록 OpenSearch 키스토어의 AWS 자격 증명을 구성합니다. Amazon Kendra 스크립트에 AWS 자격 증명을 제공하려면
--profile
옵션을 사용하여 프로필을 지정합니다. AWS--profile
옵션이 지정되지 않은 경우 빠른 시작 Bash 스크립트는 환경 변수와 기본 프로필에서 AWS 자격 증명 (액세스/비밀 키, 선택적 세션 토큰) 을 읽으려고 시도합니다. AWS--profile
옵션을 지정하지 않고 자격 증명을 찾을 수 없는 경우 스크립트는 자격 증명을 키 저장소에 전달하지 않습니다. OpenSearch OpenSearch 키스토어에 자격 증명이 지정되지 않은 경우에도 플러그인은 메타데이터 서비스를 통해 전달된 Amazon ECS 컨테이너 자격 증명 또는 인스턴스 프로필 자격 증명을 포함하여 기본 자격 증명 공급자 체인의 자격 증명을 계속 확인합니다. Amazon EC2인텔리전트 랭킹을 Amazon Kendra 호출하는 데 필요한 권한이 있는 IAM 역할을 생성했는지 확인하십시오. 다음은 특정 재점수 실행 계획에
Rescore
API 사용 권한을 부여하는 IAM 정책의 예입니다.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kendra-ranking:Rescore", "Resource": "arn:aws:kendra-ranking:${Region}:${Account}:rescore-execution-plan/${RescoreExecutionPlanId}" } ] }
docker-compose.yml의 예
인텔리전트 랭킹 플러그인 및 대시보드 2.4.0 이상에서 OpenSearch 2.4.0 이상을 사용하는 docker-compose.yml 파일의 예입니다. OpenSearch
version: '3' networks: opensearch-net: volumes: <
volume-name
>: services: opensearch-node: image: <Docker image tag name of OpenSearch with Intelligent Ranking plugin
> container_name: opensearch-node environment: - cluster.name=opensearch-cluster - node.name=opensearch-node - discovery.type=single-node - kendra_intelligent_ranking.service.endpoint=https://kendra-ranking.<region
>.api.aws - kendra_intelligent_ranking.service.region=<region
> - kendra_intelligent_ranking.service.execution_plan_id=<rescore-execution-plan-id
> ulimits: memlock: soft: -1 hard: -1 nofile: soft: 65536 hard: 65536 ports: - 9200:9200 - 9600:9600 networks: - opensearch-net volumes: <docker-volume-name
>:/usr/share/opensearch/data opensearch-dashboard: image: opensearchproject/opensearch-dashboards:<your-version
> container_name: opensearch-dashboards ports: - 5601:5601 environment: OPENSEARCH_HOSTS: '["https://opensearch-node:9200"]' networks: - opensearch-net
Dockerfile 및 이미지 빌드의 예
인텔리전트 랭킹 플러그인과 함께 2.4.0 이상을 사용하는 예제입니다. Dockerfile
OpenSearch
FROM opensearchproject/opensearch:<
your-version
> RUN /usr/share/opensearch/bin/opensearch-plugin install --batch https://github.com/opensearch-project/search-processor/releases/download/<your-version
>/search-processor.zip
인텔리전트 랭킹 플러그인을 OpenSearch 사용하여 Docker 이미지를 빌드합니다.
docker build --tag=<
Docker image tag name of OpenSearch with Intelligent Ranking plugin
>
지능형 검색 플러그인과의 상호 작용
인텔리전트 랭킹 플러그인을 설치 OpenSearch (자체 관리) 한 후에는 curl 명령어 또는 OpenSearch 클라이언트 라이브러리를 사용하여 플러그인과 상호 작용할 수 있습니다. 인텔리전트 랭킹 플러그인으로 액세스하기 OpenSearch 위한 기본 자격 증명은 사용자 이름 'admin'과 암호 'admin'입니다.
인텔리전트 랭킹 플러그인 설정을 색인에 적용하려면: OpenSearch
순위를 다시 매기는 데 사용할 기본 텍스트 필드의 이름(예: 문서 본문 또는 문서 컨텐츠 필드)을 포함해야 합니다. 문서 제목이나 문서 요약과 같은 다른 텍스트 필드도 포함할 수 있습니다.
이제 어떤 쿼리든 실행할 수 있으며 Intelligent Ranking 플러그인을 사용하여 결과의 순위가 매겨집니다.
OpenSearch 인덱스의 인텔리전트 랭킹 플러그인 설정을 제거하려면:
특정 쿼리에서 Intelligent Ranking 플러그인을 테스트하거나 특정 본문 및 제목 필드에서 테스트하려면:
OpenSearch 결과와 Amazon Kendra 결과 비교
순위가 매겨진 결과를 side-by-side OpenSearch (자체 관리) Amazon Kendra의 순위가 다시 매겨진 결과와 비교할 수 있습니다. OpenSearch 대시보드 버전 2.4.0 이상에서는 side-by-side 검색 결과를 제공하므로 문서 순위를 매기는 방식과 플러그인이 검색 OpenSearch 쿼리의 문서 순위를 매기는 방식을 Amazon Kendra 비교할 수 있습니다.
OpenSearch 순위가 매겨진 결과와 Amazon Kendra 순위가 다시 매겨진 결과를 비교하기 전에 Intelligent Ranking 플러그인이 설치된 OpenSearch 서버에서 OpenSearch 대시보드를 지원하는지 확인하십시오. Docker와 빠른 시작 Bash 스크립트를 사용하여 이를 설정할 수 있습니다. 지능형 검색 플러그인 설정 섹션을 참조하십시오.
다음은 대시보드에서 결과를 OpenSearch 비교하고 Amazon Kendra 검색하는 방법을 요약한 것입니다. OpenSearch 자세한 내용은 설명서를 참조하십시오. OpenSearch
OpenSearch 대시보드의 검색 결과 비교
-
http://localhost:5601 을 열고 OpenSearch 대시보드에 로그인합니다. 기본 보안 인증은 사용자 이름 'admin'과 비밀번호 'admin'입니다.
-
탐색 메뉴의 OpenSearch 플러그인에서 검색 관련성을 선택합니다.
-
검색 창에 검색 텍스트를 입력합니다.
-
쿼리 1의 색인을 선택하고 OpenSearch 쿼리 DSL에 쿼리를 입력합니다.
%SearchText%
변수를 사용하여 검색 창에 입력한 검색 텍스트를 참조할 수 있습니다. 이 쿼리의 예는 OpenSearch 설명서를참조하십시오. 이 쿼리에 대해 반환되는 OpenSearch 결과는 인텔리전트 랭킹 플러그인을 사용하지 않은 결과입니다. -
쿼리 2에 대해 동일한 인덱스를 선택하고 OpenSearch 쿼리 DSL에 동일한 쿼리를 입력합니다. 또한
kendra_intelligent_ranking
에 확장을 포함하고 순위를 매길 필수body_field
를 지정하세요. 제목 필드를 지정할 수도 있지만 본문 필드는 필수입니다. 이 쿼리의 예는 OpenSearch 설명서를참조하십시오. 이 쿼리에 대해 반환되는 결과는 인텔리전트 Amazon Kendra 랭킹 플러그인을 사용하여 순위를 다시 매긴 결과입니다. 플러그인은 최대 25개의 결과 순위를 매깁니다. -
결과를 반환하고 비교하려면 검색을 선택합니다.