Indicizzare i BLOB e i file di testo normale in Azure AI Search
Si applica a: Indicizzatori BLOB, Indicizzatori file
Quando si utilizza un indicizzatore per estrarre testo BLOB o contenuto di file ricercabile per la ricerca full-text, è possibile assegnare una modalità di analisi per ottenere risultati di indicizzazione migliori. Per impostazione predefinita, l'indicizzatore analizza la proprietà content
di un BLOB come singolo blocco di testo. Tuttavia, se tutti i BLOB e i file contengono testo normale con la stessa codifica, è possibile migliorare significativamente le prestazioni di indicizzazione avvalendosi della modalità di analisi text
.
Le raccomandazioni per l'analisi text
includono una delle seguenti caratteristiche:
- Il tipo di file è
.txt
- I file sono di qualsiasi tipo, ma il contenuto in sé è testo (ad esempio, codice sorgente del programma, HTML, XML, e così via). Per i file in linguaggio di markup, i caratteri della sintassi vengono inseriti come testo statico.
Tenere presente che tutti gli indicizzatori serializzano in JSON. Per impostazione predefinita, il contenuto dell'intero file di testo viene indicizzato all'interno di un campo di grandi dimensioni come "content": "<file-contents>"
. Le istruzioni di nuova riga e restituzione sono incorporate nel campo del contenuto ed espresse come \r\n\
.
Se si desidera ottenere un risultato più raffinato o granulare e se il tipo di file è compatibile, prendere in considerazione le soluzioni seguenti:
- modalità di analisi
delimitedText
, se l'origine è CSV jsonArray
ojsonLines
, se l'origine è JSON
Una terza opzione alternativa per suddividere il contenuto in più parti richiede funzionalità avanzate sotto forma di arricchimento tramite intelligenza artificiale. Viene aggiunta l'analisi che identifica e assegna blocchi del file a diversi campi di ricerca. È possibile trovare una soluzione completa o parziale tramite competenze predefinite, ad esempio il riconoscimento delle entità o l'estrazione di parole chiave, tuttavia la soluzione più probabile potrebbe essere un modello di apprendimento personalizzato che riconosca il contenuto incluso in una competenza personalizzata.
Configurare l'indicizzazione di testo normale
Per indicizzare BLOB di testo normale, creare o aggiornare una definizione dell'indicizzatore con la proprietà di configurazione parsingMode
impostata su text
in una richiesta Crea indicizzatore:
PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=2024-07-01
Content-Type: application/json
api-key: [admin key]
{
... other parts of indexer definition
"parameters" : { "configuration" : { "parsingMode" : "text" } }
}
Per impostazione predefinita, verrà utilizzata la codifica UTF-8
. Per specificare una codifica diversa, utilizzare la proprietà di configurazione encoding
. L'elenco di codifiche supportato è disponibile nella colonna Supporto .NET 5 e versioni successive.
{
... other parts of indexer definition
"parameters" : { "configuration" : { "parsingMode" : "text", "encoding" : "iso-8859-1" } }
}
Esempio di richiesta
Le modalità di analisi sono specificate nella definizione dell'indicizzatore.
POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
Content-Type: application/json
api-key: [admin key]
{
"name" : "my-plaintext-indexer",
"dataSourceName" : "my-blob-datasource",
"targetIndexName" : "my-target-index",
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextHeaders" : "id,datePublished,tags" } }
}