Update Index (API REST ricerca intelligenza artificiale di Azure)
La modifica di un indice esistente richiede in genere un'eliminazione e la ricompilazione dell'indice, ad eccezione delle modifiche dello schema seguenti:
Aggiungere nuovi campi a una raccolta di campi
Aggiungere campi appena creati a un suggeritore
Aggiungere o modificare i profili di assegnazione dei punteggi
Aggiungere o modificare le chiavi di crittografia
Aggiungere nuovi analizzatori personalizzati
Modificare le opzioni CORS
Modificare i campi esistenti con una delle tre modifiche seguenti:
- Modifica
retrievable
(i valori sono true o false) - Modifica
searchAnalyzer
(usata in fase di query) - Aggiungere o modificare
synonymMaps
(usato in fase di query)
- Modifica
Per aggiungere questi aggiornamenti, inserire il nome dell'indice nell'URI della richiesta. Nel corpo della richiesta includere una definizione di indice completamente specificata con le modifiche.
PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]
Content-Type: application/json
api-key: [admin key]
I campi esistenti e la maggior parte degli attributi di campo non possono essere eliminati o modificati, né possono essere aggiunti campi ai suggeritori. È possibile aggiungere solo i campi appena creati a un suggester
oggetto .
Quando viene aggiunto un nuovo campo, tutti i documenti esistenti ottengono automaticamente un valore Null per tale campo. Nessun altro spazio di archiviazione viene utilizzato fino a quando non si verifica una delle due operazioni seguenti: viene fornito un valore per il nuovo campo (tramite merge) o vengono aggiunti nuovi documenti.
Gli analizzatori esistenti, i tokenizer, i filtri token e i filtri char non possono essere modificati. L'aggiunta di nuovi a un indice già esistente è possibile solo quando il allowIndexDowntime
flag viene attivato nella richiesta di aggiornamento dell'indice. La stessa regola si applica quando si aggiunge un campo vettore iniziale a un indice preesistente stabilito usando un'API che non supportava la ricerca vettoriale, in particolare prima dell'API REST versione 2023-07-01 Preview.
PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]&allowIndexDowntime=true
Questa operazione accetta l'indice offline per alcuni secondi. L'indicizzazione e le richieste di query hanno esito negativo mentre l'indice è offline. Le operazioni di scrittura e prestazioni possono essere temporaneamente compromesse per diversi minuti dopo che l'indice è tornato online.
Parametri dell'URI
Parametro | Descrizione |
---|---|
nome servizio | Obbligatorio. Impostare questo valore sul nome univoco definito dall'utente del servizio di ricerca. |
nome indice | Obbligatorio. L'URI della richiesta specifica il nome dell'indice da aggiornare. |
api-version | Obbligatorio. Per un elenco di versioni supportate, vedere Versioni API . |
allowIndexDowntime | facoltativo. False per impostazione predefinita. Impostare su true per determinati aggiornamenti, ad esempio l'aggiunta o la modifica di un analizzatore, tokenizer, filtro token, filtro char o proprietà di somiglianza. L'indice viene preso offline durante l'aggiornamento, in genere non più di diversi secondi. |
Intestazioni richiesta
La tabella seguente descrive le intestazioni della richiesta obbligatorie e facoltative.
Campi | Descrizione |
---|---|
Content-Type | Obbligatorio. Impostare il valore su application/json |
api-key | Facoltativo se si usano ruoli di Azure e viene fornito un token di connessione nella richiesta, altrimenti è necessaria una chiave. Le richieste di aggiornamento devono includere un'intestazione api-key impostata sulla chiave di amministrazione anziché su una chiave di query. Per informazioni dettagliate, vedere Connettersi a Ricerca intelligenza artificiale di Azure usando l'autenticazione delle chiavi . |
Corpo della richiesta
La sintassi del corpo della richiesta è uguale a quella di Create Index.
Quando si aggiorna un indice esistente, il corpo deve includere la definizione completa dello schema, incluse le definizioni originali che si desidera conservare. In generale, il modello migliore per gli aggiornamenti consiste nel recuperare la definizione dell'indice con un GET, modificarlo e quindi aggiornarlo con PUT.
Risposta
Per una richiesta con esito positivo viene visualizzato il codice di stato "204 Nessun contenuto".
Per impostazione predefinita, il corpo della risposta è vuoto. Tuttavia, se l'intestazione della Prefer
richiesta è impostata su return=representation
, il corpo della risposta contiene il codice JSON dell'indice aggiornato. In questo caso, il codice di stato dell'esito positivo è "200 OK".