

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

# Amazon OpenSearch Service 쿼리에 플러그인 적용
<a name="managed-apply-plugin"></a>

[파이프라인을 생성](managed-opensearch-plugin-pipeline-example.md)한 후에는 Amazon Personalize Search Ranking 플러그인을 쿼리에 적용할 준비가 되었습니다. 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를 지정합니다. 이 사용자는 Personalize 솔루션 버전을 생성하는 데 사용한 데이터에 포함되어 있어야 합니다. 사용자가 없는 경우 Personalize는 인기도에 따라 항목의 순위를 매깁니다.

  컨텍스트 메타데이터를 사용하는 경우 `context`에 장치 유형과 같은 사용자의 컨텍스트 메타데이터를 제공합니다. `context` 필드는 선택 사항입니다. 자세한 내용은 [컨텍스트 메타데이터로 추천 관련성 높이기](contextual-metadata.md) 섹션을 참조하세요.

  ```
  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}")
  ```