프로젝션 정의

완료됨

지식 저장소에 저장할 데이터의 프로젝션은 인덱싱 프로세스에서 보강 파이프라인에 의해 생성된 문서 구조를 기반으로 합니다. 기술 세트의 각 기술은 인덱싱되는 문서에 대한 보강된 데이터의 JSON 표현을 반복적으로 작성하며 문서의 일부 또는 모든 필드를 프로젝션으로 유지할 수 있습니다.

쉐이퍼 스킬 사용

인덱싱 프로세스는 기술 세트의 기술에서 다양한 출력 필드를 포함하는 복잡한 문서를 증분 방식으로 만듭니다. 이로 인해 작업하기 어렵고 잘 구성된 JSON에 쉽게 매핑되지 않는 기본 데이터 값의 컬렉션이 포함된 스키마가 발생할 수 있습니다.

이러한 필드 값을 지식 저장소의 프로젝션에 매핑하는 작업을 간소화하기 위해 쉐이퍼 기술을 사용하여 프로젝션에 매핑하려는 필드에 대한 더 간단한 구조를 포함하는 새 필드를 만드는 것이 일반적입니다.

예를 들어 다음 쉐이퍼 기술 정의를 고려합니다.

{
  "@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
  "name": "define-projection",
  "description": "Prepare projection fields",
  "context": "/document",
  "inputs": [
    {
      "name": "file_name",
      "source": "/document/metadata_content_name"
    },
    {
      "name": "url",
      "source": "/document/url"
    },
    {
      "name": "sentiment",
      "source": "/document/sentimentScore"
    },
    {
      "name": "key_phrases",
      "source": null,
      "sourceContext": "/document/merged_content/keyphrases/*",
      "inputs": [
        {
          "name": "phrase",
          "source": "/document/merged_content/keyphrases/*"
        }
      ]
    }
  ],
  "outputs": [
    {
      "name": "output",
      "targetName": "projection"
    }
  ]
}

이 쉐이퍼 기술은 다음 구조로 프로젝션 필드를 만듭니다.

{
    "file_name": "file_name.pdf",
    "url": "https://<storage_path>/file_name.pdf",
    "sentiment": 1.0,
    "key_phrases": [
        {
            "phrase": "first key phrase"
        },
        {
            "phrase": "second key phrase"
        },
        {
            "phrase": "third key phrase"
        },
        ...
    ]
}

결과 JSON 문서는 보강 파이프라인의 이전 기술에 의해 반복적으로 빌드된 보다 복잡한 문서보다 잘 구성되고 지식 저장소의 프로젝션에 매핑하기가 더 쉽습니다.