2016-04-21 16 views
5

Sto usando Elasticsearch Bulk Index per aggiornare alcune statistiche di un documento, ma potrebbe accadere che il documento che sto tentando di aggiornare non esista - in questo caso voglio che non faccia nulla.Elasticsearch Bulk Index - Aggiornamento solo se esistente

Non voglio che crei il documento in questo caso.

Non ho trovato nulla nei documenti, o forse l'ho perso.

mie azioni in corso (in questo caso si crea il documento):

{ 
    update: { 
     _index: "index1", 
     _type: "interaction", 
     _id: item.id 
    } 
}, 
{ 
    script: { 
     file: "update-stats", 
     lang: "groovy", 
     params: { 
      newCommentsCount: newRetweetCount, 
     } 
    }, 
    upsert: normalizedItem 
} 

Come posso aggiornare il documento solo se esiste, altrimenti niente?

Grazie

risposta

0

Non utilizzare upsert e utilizzare un normale aggiornamento. Anche se il documento non esiste durante l'aggiornamento, l'aggiornamento avrà esito negativo. Lì dovrebbe funzionare bene per te.

+0

L'aggiornamento senza clausola di upsert avrà esito negativo e creerà un'eccezione. Se un'applicazione, in base alla progettazione, richiede questa funzionalità di solo aggiornamento se esiste, verranno lanciate molte eccezioni in questo modo. Dato un certo numero di domande e risposte su come lente eccezioni sono, questa soluzione non causa problemi di prestazioni? – Aaron

Problemi correlati