Definire le proiezioni

Completato

Le proiezioni dei dati da memorizzare nell'archivio conoscenze sono basate sulle strutture dei documenti generate dalla pipeline di arricchimento durante il processo di indicizzazione. Ogni competenza del set di competenze compila in modo iterativo una rappresentazione JSON dei dati arricchiti per i documenti da indicizzare ed è possibile rendere permanenti alcuni o tutti i campi del documento come proiezioni.

Uso della competenza shaper

Il processo di indicizzazione crea in modo incrementale un documento complesso contenente i vari campi di output delle competenze del set di competenze. Il risultato può essere uno schema difficile da usare che include raccolte di valori di dati primitivi non facilmente associabili al file JSON ben formato.

Per semplificare il mapping dei valori di questi campi alle proiezioni in un archivio conoscenze, è comune usare la competenza shaper per creare un nuovo campo contenente una struttura più semplice per i campi di cui si vuole eseguire il mapping alle proiezioni.

Si consideri, ad esempio, la definizione della competenza shaper seguente:

{
  "@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"
    }
  ]
}

Questa competenza shaper crea un campo projection con la struttura seguente:

{
    "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"
        },
        ...
    ]
}

Il documento JSON risultante è ben formato e più semplice da associare a una proiezione in un archivio conoscenze rispetto al documento più complesso che è stato compilato in modo iterativo dalle competenze precedenti nella pipeline di arricchimento.