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. L'eccezione è l'importazione guidata nelle pipeline di portale di Azure e indicizzatore, che 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 può importare e indicizzare contenuto di testo normale e contenuto vettoriale nei documenti JSON.
Il contenuto di testo normale viene recuperato dai campi nell'origine dati esterna, dalle proprietà dei metadati o dal contenuto arricchito generato da un set di competenze (le competenze possono estrarre o dedurre descrizioni testuali dalle immagini e dal contenuto non strutturato).
Il contenuto vettoriale viene recuperato da un'origine dati che la fornisce oppure viene creata da un set di competenze che implementa la vettorializzazione integrata in un carico di lavoro dell'indicizzatore di Ricerca di intelligenza artificiale di Azure.
È 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.
Accedere al portale di Azure con il proprio account Azure e trovare il proprio servizio di ricerca.
Nella pagina Panoramica, selezionare Importa dati o Importa e vettorizza dati sulla barra dei comandi per creare e popolare un indice di ricerca.
Per esaminare il flusso di lavoro, seguire questi link: Guida introduttiva: creare un indice di Azure AI Search e Avvio rapido: vettorializzazione integrata.
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.
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": "Stay-Kay City Hotel", "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": "Old Century Hotel", "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" ] } ] }
Impostare il parametro
@search.action
suupload
per creare o sovrascrivere un documento. Impostarlo sumerge
ouploadOrMerge
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 campotags
inizia con un valore di["budget"]
e si esegue Unisci con["economy", "pool"]
, il valore finale del campotags
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. Inviare la richiesta.
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:
"Carica un indice" illustra i passaggi di base.
Campioni di Azure.Search.Documents: indicizzazione di documenti del team di Azure SDK aggiunge SearchIndexingBufferedSender.
Esercitazione: indicizzare dati combina l’indicizzazione batch con strategie di test per determinare le dimensioni ottimali.
Assicurarsi di controllare il repository azure-search-vector-samples per campioni di codice che illustrano come indicizzare campi vettoriali.