OpenSearch 쿼리에 플러그인 적용 - Personalize

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

OpenSearch 쿼리에 플러그인 적용

personalized_search_ranking응답 프로세서로 검색 파이프라인을 구성했으면 Amazon Personalize Search Ranking 플러그인을 OpenSearch 쿼리에 적용하고 순위가 다시 매겨진 결과를 볼 수 있습니다.

OpenSearch 쿼리에 플러그인을 적용할 때 검색 파이프라인의 지표를 얻어 플러그인을 모니터링할 수 있습니다. 자세한 정보는 플러그인 모니터링을 참조하세요.

Amazon OpenSearch 서비스 쿼리에 플러그인 적용

Amazon Personalize 검색 순위 플러그인을 색인에 대한 모든 쿼리와 응답에 적용할 수 있습니다. 플러그인을 개별 쿼리 및 응답에 적용할 수도 있습니다.

  • 다음 Python 코드를 사용하면 검색 파이프라인을 색인에 적용할 수 있습니다. 이 접근 방식을 사용하면 이 색인을 사용하는 모든 검색에서 플러그인을 사용하여 검색 결과에 개인 맞춤을 적용합니다.

    import requests from requests_auth_aws_sigv4 import AWSSigV4 domain_endpoint = 'domain endpoint' index = 'index name' url = f'{domain_endpoint}/{index}/_settings/' auth = AWSSigV4('es') headers = {'Content-Type': 'application/json'} body = { "index.search.default_pipeline": "pipeline name" } try: response = requests.put(url, auth=auth, json=body, headers=headers) print(response.text) except Exception as e: print(f"Error: {e}")
  • 다음 Python 코드를 사용하면 Toyota 브랜드 자동차에 대한 개별 쿼리에 검색 파이프라인을 적용할 수 있습니다.

    코드를 업데이트하여 도메인 엔드포인트, OpenSearch 서비스 인덱스, 파이프라인 이름, 쿼리를 지정합니다. user_id에, 검색 결과를 얻으려는 사용자의 ID를 지정합니다. 이 사용자는 Amazon Personalize 솔루션 버전을 생성하는 데 사용한 데이터에 포함되어 있어야 합니다. 사용자가 없는 경우 Amazon Personalize는 인기도에 따라 항목의 순위를 매깁니다.

    상황별 메타데이터를 사용하는 경우 context에 장치 유형과 같은 사용자의 상황별 메타데이터를 제공합니다. context 필드는 선택 사항입니다. 자세한 정보는 상황별 메타데이터로 추천 관련성 높이기을 참조하세요.

    import requests from requests_auth_aws_sigv4 import AWSSigV4 domain_endpoint = 'domain endpoint' index = 'index name' url = f'{domain_endpoint}/{index}/_search/' auth = AWSSigV4('es') headers = {'Content-Type': 'application/json'} params = {"search_pipeline": "pipeline-name"} body = { "query": { "multi_match": { "query": "Toyota", "fields": ["BRAND"] } }, "ext": { "personalize_request_parameters": { "user_id": "USER ID" "context": { "DEVICE" : "mobile phone" } } } } try: response = requests.post(url, auth=auth, params=params, json=body, headers=headers, verify=False) print(response) except Exception as e: print(f"Error: {e}")

오픈소스의 쿼리에 플러그인 적용 OpenSearch

Amazon Personalize 검색 순위 플러그인을 색인에 대한 모든 쿼리와 응답에 적용할 수 있습니다. OpenSearch 플러그인을 개별 OpenSearch 쿼리 및 응답에 적용할 수도 있습니다.

  • 다음 curl 명령은 로컬에서 실행되는 오픈 소스 OpenSearch 클러스터의 OpenSearch 인덱스에 검색 파이프라인을 적용합니다. 이 접근 방식을 사용하면 이 색인의 모든 검색이 플러그인을 사용하여 검색 결과에 개인 맞춤을 적용합니다.

    curl -XGET "https://localhost:9200/index/_settings" -ku 'admin:admin' --insecure -H 'Content-Type: application/json' -d' { "index.search.default_pipeline" : "pipeline-name" } '
  • 다음 curl 명령은 로컬에서 실행되는 오픈 소스 OpenSearch 클러스터의 인덱스에 있는 Toyota 브랜드 자동차에 대한 개별 쿼리에 검색 파이프라인을 적용합니다.

    user_id에, 검색 결과를 얻으려는 사용자의 ID를 지정합니다. 이 사용자는 Amazon Personalize 솔루션 버전을 생성하는 데 사용한 데이터에 포함되어 있어야 합니다. 사용자가 없는 경우 Amazon Personalize는 인기도에 따라 항목의 순위를 매깁니다. 상황별 메타데이터를 사용하는 경우 context에 장치 유형과 같은 사용자의 상황별 메타데이터를 제공합니다. context 필드는 선택 사항입니다. 자세한 정보는 상황별 메타데이터로 추천 관련성 높이기을 참조하세요.

    curl -XGET "http://localhost:9200/index/_search?search_pipeline=pipeline-name" -ku 'admin:admin' --insecure -H 'Content-Type: application/json' -d' { "query": { "multi_match": { "query": "Toyota", "fields": ["BRAND"] } }, "ext": { "personalize_request_parameters": { "user_id": "user ID", "context": { "DEVICE" : "mobile phone" } } } } '

결과 순위가 다시 매겨지는 방식을 이해하기 위해 OpenSearch 대시보드를 사용하여 플러그인을 사용하여 순위가 다시 매겨진 OpenSearch 결과와 결과를 비교할 수 있습니다. 자세한 정보는 OpenSearch 결과를 플러그인 결과와 비교을 참조하세요.

플러그인을 OpenSearch 쿼리에 적용하면 파이프라인의 메트릭을 가져와 플러그인을 모니터링할 수 있습니다. OpenSearch 자세한 정보는 플러그인 모니터링을 참조하세요.