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)

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 suggesteroggetto .

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".

Vedi anche