Come utilizzare Elasticsearch Bulk API

Come utilizzare Elasticsearch Bulk API
ElasticSearch consente di eseguire più operazioni CRUD utilizzando una singola richiesta API utilizzando l'API di massa. L'uso dell'API in blocco può aiutare a ridurre le spese generali e aumentare le operazioni di indicizzazione. Quando si eseguono operazioni CRUD consecutive, è meglio utilizzare l'API di massa invece di richieste separate per ciascuna funzione.

Questo breve articolo illustrerà l'uso dell'API di massa per eseguire più operazioni CRUD in una singola richiesta API.

Basi dell'API in blocco Elasticsearch

Possiamo utilizzare l'API in blocco inviando una richiesta POST HTTP all'endpoint API _Bulk. La richiesta dovrebbe contenere l'operazione eseguita nella chiamata API, come la creazione o l'eliminazione di un indice.

Considera la seguente richiesta.

Ottieni /test-indice
Post _Bulk
"indice": "_index": "test-indEx-1", "_id": 1
"field1": "value1"
"Update": "_id": 1, "_index": "Test-Index-1"
"doc": "field2": "value2"
"elimina": "_index": "test-indEx-1", "_id": 1

La richiesta di esempio di cui sopra esegue tre azioni consecutive contemporaneamente. Crea un indice e aggiunge un documento.

Successivamente, aggiorniamo il record ed lo eliminiamo.

Dovresti vedere l'output simile a quello mostrato di seguito:

Spiegazione

Come accennato, l'API in blocco consente di eseguire più azioni come indice, creare, aggiornare ed eliminare in una singola query.

Ogni azione è specificata nell'organismo di richiesta utilizzando il formato JSON delimitato newline.

Sia l'indice che le operazioni di creazione richiedono di specificare l'origine. L'azione dell'indice aggiunge o esegue una sostituzione sull'indice come specificato. È bene notare che l'operazione dell'indice fallirà se esiste già un documento con un indice simile.

Un'operazione di aggiornamento, d'altra parte, richiede un documento parziale specificato.

Comprendere l'organismo di richiesta

L'API di massa accetta le operazioni da eseguire nel corpo. Le voci nel corpo sono sotto forma di formato delimitato JSON.

Ogni voce in una nuova riga include l'azione e i dati correlati per l'operazione di destinazione.

Abbattiamo le operazioni che è possibile specificare nell'organismo di richiesta e nei parametri accettati:

Creare

L'operazione Crea indicizzerà un documento specificato se il documento non esiste. I parametri essenziali per l'operazione Crea includono:

_indice - Imposta il nome dell'indice o dell'alias dell'indice su cui eseguire l'operazione dell'indice. Questo parametro non è facoltativo se non si dispone del parametro target impostato nel percorso di richiesta.

_id - L'ID del documento da indicizzare. Se non si ha specificato valore, ElasticSearch genererà automaticamente l'ID documento.

Aggiornamento

L'operazione di aggiornamento eseguirà un aggiornamento del documento parziale. I parametri da conoscere per l'operazione di aggiornamento includono:

_indice - Specifica il nome dell'indice o delle aree dell'indice per eseguire l'operazione di aggiornamento.

_id - ID documento, generato automaticamente se non specificato.

Doc - Imposta il nome del documento parziale su indice.

Indice

L'operazione indice indicizza un documento specificato. Se esiste il documento specificato, l'operazione indice sostituirà il documento e incrementerà la sua versione. I parametri essenziali per questa operazione includono:

_indice - Imposta il nome dell'indice o l'alias dell'indice su.

_id - ID del documento.

Eliminare

L'operazione di eliminazione elimina un documento dall'indice. I parametri devono sapere per questa operazione includono:

_indice - Imposta il nome o l'alias dell'indice.

_id - L'ID del documento da rimuovere dall'indice.

NOTA: È bene prestare attenzione alla risposta dell'API di massa per determinare informazioni come operazioni fallite e di successo.

Conclusione

L'API di massa in Elasticsearch può essere un risparmio di tempo sia nel numero di richieste da fare sia nella performance di indicizzazione. Questa guida fornisce le basi su come lavorare con l'API per eseguire più operazioni.

Per saperne di più sull'API di massa, dai un'occhiata alla documentazione.