Definir projeções
As projeções de dados a serem armazenadas em seu repositório de conhecimento são baseadas nas estruturas de documento geradas pelo pipeline de enriquecimento no processo de indexação. Cada habilidade no conjunto de habilidades cria iterativamente uma representação JSON dos dados enriquecidos para os documentos que estão sendo indexados, e você pode manter alguns campos ou todos eles no documento como projeções.
Usando a habilidade do Shaper
O processo de indexação cria incrementalmente um documento complexo que contém os vários campos de saída das habilidades no conjunto de habilidades. Isso pode resultar em um esquema com o qual é difícil trabalhar e que inclui coleções de valores de dados primitivos que não são mapeados facilmente para JSON bem formado.
Para simplificar o mapeamento desses valores de campo para projeções em um repositório de conhecimento, é comum usar a habilidade do Shaper para criar um campo contendo uma estrutura mais simples para os campos que você deseja mapear para projeções.
Por exemplo, considere a seguinte definição de habilidade do 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"
}
]
}
Essa habilidade do Shaper cria um campo de projeção com a seguinte estrutura:
{
"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"
},
...
]
}
O documento JSON resultante é bem formado e mais fácil de mapear para uma projeção em um repositório de conhecimento do que o documento mais complexo que foi criado iterativamente pelas habilidades anteriores no pipeline de enriquecimento.