Condividi tramite


Caricare dati in un indice di ricerca in Ricerca di Azure AI Search

Questo articolo illustra come importare documenti in un indice di ricerca predefinito. In Azure AI Search, viene creato prima di tutto un indice di ricerca, con l’importazione dei dati come secondo passaggio. Le importazioni guidate nelle pipeline del portale e dell'indicizzatore rappresentano un’eccezione, in quanto creano e caricano un indice in un unico flusso di lavoro.

Funzionamento dell'importazione dei dati

Un servizio di ricerca accetta documenti JSON conformi allo schema dell'indice. Un servizio di ricerca importa e indicizza testo normale e vettori in JSON, usato in scenari di ricerca full-text, ricerca vettoriale, ricerca ibrida e knowledge mining.

  • Il contenuto di testo normale può essere ottenuto da campi alfanumerici nell'origine dati esterna, metadati utili in scenari di ricerca o contenuti arricchiti creati da un set di competenze (le competenze possono estrarre o dedurre descrizioni testuali da immagini e contenuto non strutturato).

  • Il contenuto vettoriale viene vettorializzato usando un modello di incorporamento esterno o la vettorializzazione integrata usando le funzionalità di Azure AI Search che si integrano con l'intelligenza artificiale applicata.

È possibile preparare manualmente questi documenti, ma se il contenuto si trova in un'origine dati supportata, l'esecuzione di un indicizzatore o l'uso di un'importazione guidata può automatizzare il recupero dei documenti, la serializzazione JSON e l'indicizzazione.

Una volta che l'indicizzazione dei dati è stata completata, le strutture dei dati fisici dell'indice vengono bloccate. Per materiale sussidiario che illustra cosa può e non può essere modificato, vedere Aggiornare e ricompilare un indice.

L'indicizzazione non è un processo in background. Un servizio di ricerca bilancia l'indicizzazione e i carichi di lavoro delle query, ma se la latenza delle query è troppo elevata, è possibile aggiungere capacità o identificare periodi di bassa attività di query per caricare un indice.

Per altre informazioni, vedere Strategie di importazione dei dati.

Usare il portale di Azure

Nel portale di Azure, usare le procedure guidate di importazione per creare e caricare indici in un flusso di lavoro ininterrotto. Se si vuole caricare un indice esistente, scegliere un approccio alternativo.

  1. Accedere al portale di Azure con il proprio account Azure e trovare il proprio servizio di ricerca.

  2. Nella pagina Panoramica, selezionare Importa dati o Importa e vettorizza dati sulla barra dei comandi per creare e popolare un indice di ricerca.

    Screenshot del comando Importa dati

    Per esaminare il flusso di lavoro, seguire questi link: Guida introduttiva: creare un indice di Azure AI Search e Avvio rapido: vettorializzazione integrata.

  3. Al termine della procedura guidata, usare Esplora ricerche per verificare la presenza di risultati.

Suggerimento

Le procedure guidate di importazione creano ed eseguono indicizzatori. Se gli indicizzatori sono già definiti, è possibile ripristinare ed eseguire un indicizzatore dal portale di Azure, il che risulta utile se si stanno aggiungendo campi in modo incrementale. Il ripristino forza l'avvio dell'indicizzatore, raccogliendo tutti i campi da tutti i documenti di origine.

Usare le API REST

Documenti - Indice è l'API REST per l'importazione di dati in un indice di ricerca. Le API REST sono utili per test iniziali di prototipo, in cui è possibile testare flussi di lavoro di indicizzazione senza dover scrivere molto codice. Il parametro @search.action determina se i documenti vengono aggiunti completamente o parzialmente, in termini di valori nuovi o sostitutivi per campi specifici.

Avvio rapido: Ricerca di testo con REST illustra i passaggi. L'esempio seguente è una versione modificata dell'esempio. È stato tagliato per brevità e il primo valore HotelId è stato modificato per evitare di sovrascrivere un documento esistente.

  1. Formulare una chiamata POST che specifica il nome dell'indice, l'endpoint "docs/index" e un corpo della richiesta che include il parametro @search.action.

    POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/index?api-version=2024-07-01
    Content-Type: application/json   
    api-key: [admin key] 
    {
        "value": [
        {
        "@search.action": "upload",
        "HotelId": "1111",
        "HotelName": "Secret Point Motel",
        "Description": "The hotel is ideally located on the main commercial artery of the city in the heart of New York. A few minutes away is Time's Square and the historic centre of the city, as well as other places of interest that make New York one of America's most attractive and cosmopolitan cities.",
        "Category": "Boutique",
        "Tags": [ "pool", "air conditioning", "concierge" ]
        },
        {
        "@search.action": "mergeOrUpload",
        "HotelId": "2",
        "HotelName": "Twin Dome Motel",
        "Description": "This is description is replacing the original one for this hotel. New and changed values overwrite the previous ones. In a comma-delimited list like Tags, be sure to provide the full list because there is no merging of values within the field itself.",
        "Category": "Boutique",
        "Tags": [ "pool", "free wifi", "concierge", "my first new tag", "my second new tag" ]
        }
      ]
    }
    
  2. Impostare il parametro @search.action su upload per creare o sovrascrivere un documento. Impostarlo su merge o uploadOrMerge se si desidera destinare gli aggiornamenti a campi specifici all'interno del documento. L'esempio precedente mostra entrambe le azioni.

    Azione Effetto
    merge Aggiorna il documento già esistente e omette il documento che non può essere trovato. Unisci sostituisce i valori esistenti. Per questo motivo, assicurarsi di verificare la presenza di campi della raccolta che contengono più valori, ad esempio campi di tipo Collection(Edm.String). Ad esempio, se un campo tags inizia con un valore di ["budget"] e si esegue Unisci con ["economy", "pool"], il valore finale del campo tags sarà ["economy", "pool"]. Non sarà ["budget", "economy", "pool"].
    mergeOrUpload Si comporta come Unisci se il documento esiste già e Carica se il documento è nuovo. Questa è l'azione più comune per gli aggiornamenti incrementali.
    upload Simile a un "upsert" in cui il documento viene inserito se nuovo e aggiornato o sostituito se esistente. Se il documento non contiene valori richiesti dall'indice, il valore del campo del documento viene impostato su Null.
  3. Inviare la richiesta.

  4. Cercare i documenti appena aggiunti come fase di convalida:

    GET https://[service name].search.windows.net/indexes/hotel-sample-index/docs/1111?api-version=2024-07-01
    

Quando la chiave o l'ID del documento è nuova, null diventa il valore per qualsiasi campo non specificato nel documento. Per azioni su un documento esistente, i valori precedenti vengono sostituiti con valori aggiornati. Tutti i campi non specificati in un "merge" o "mergeUpload" rimangono intatti nell'indice di ricerca.

Usare gli Azure SDK

La programmabilità è disponibile negli SDK di Azure seguenti.

Azure SDK per .NET fornisce le API seguenti per il caricamento di documenti semplice e in blocco in un indice:

Esistono diversi esempi che illustrano il processo di indicizzazione nel contesto di indicizzazione semplice e su larga scala:

Vedi anche