プロジェクションを定義する
ナレッジ ストアに格納されるデータのプロジェクションは、インデックス作成プロセスのエンリッチメント パイプラインによって生成されるドキュメント構造に基づいています。 スキルセット内の各スキルによって、インデックスが作成されるドキュメントのために、エンリッチされたデータの JSON 表現が反復的に構築され、ドキュメントの一部またはすべてのフィールドをプロジェクションとして保持することができます。
Shaper スキルの使用
インデックスを作成するプロセスでは、スキルセットのスキルから、さまざまな出力フィールドを含む複雑なドキュメントが徐々に作成されます。 これにより、スキーマの操作が困難になり、スキーマに整形式の JSON に簡単にマップできないプリミティブ データ値のコレクションが含まれる可能性があります。
これらのフィールド値をナレッジ ストア内のプロジェクションに簡単にマッピングできるようにするには、Shaper スキルを使用して、プロジェクションにマップするフィールドのより単純な構造を含む新しいフィールドを作成するのが一般的です。
たとえば、次の Shaper スキル定義があるとします。
{
"@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"
}
]
}
この Shaper スキルによって、次の構造を持つプロジェクション フィールドが作成されます。
{
"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 ドキュメントは、整形式であり、エンリッチメント パイプラインの前のスキルによって反復的に作成されたより複雑なドキュメントよりも、ナレッジ ストアのプロジェクションに簡単にマップできます。