프로젝션 정의
지식 저장소에 저장할 데이터의 프로젝션은 인덱싱 프로세스에서 보강 파이프라인에 의해 생성된 문서 구조를 기반으로 합니다. 기술 세트의 각 기술은 인덱싱되는 문서에 대한 보강된 데이터의 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 문서는 보강 파이프라인의 이전 기술에 의해 반복적으로 빌드된 보다 복잡한 문서보다 잘 구성되고 지식 저장소의 프로젝션에 매핑하기가 더 쉽습니다.