2015-06-01 40 views
7

Ho un indice con più voci duplicate. Hanno id differenti ma gli altri campi hanno contenuti identici.Elasticsearch: rimuovere i duplicati dall'indice

Ad esempio:

{id: 1, content: 'content1'} 
{id: 2, content: 'content1'} 
{id: 3, content: 'content2'} 
{id: 4, content: 'content2'} 

Dopo aver rimosso i duplicati:

{id: 1, content: 'content1'} 
{id: 3, content: 'content2'} 

Esiste un modo per eliminare tutti i duplicati e mantenere soltanto una voce distinta senza confrontare manualmente tutte le voci?

+0

utilizzando i propri ID che garantiscono l'idempotence. Questo significa che con il contenuto: "content1", dovresti sempre avere lo stesso id –

+0

Ma non è il mio caso. Sto lavorando con un dato indice. In questo indice ci sono più voci separate che hanno lo stesso contenuto. Pertanto voglio rimuovere questi duplicati. – fwind

+0

Come viene mappato il campo 'content'? È una 'stringa',' analizzata' o 'non_analizzata '? – Val

risposta

2

Uso le guide e, se necessario, importerò le cose con il comando FORCE=y, che rimuove e reindicizza tutto per quell'indice e digita ... tuttavia non sono sicuro di quale ambiente si sta eseguendo. ES Solo problema posso vedere è se l'origine dati da cui si sta effettuando l'importazione (es. database) ha record duplicati. Immagino che vedrei prima se la fonte di dati potrebbe essere riparata, se è fattibile, e tu indicizzi di nuovo tutto; altrimenti potresti provare a creare un metodo di importazione personalizzato che indicizza solo uno degli elementi duplicati per ogni record.

Inoltre, e so che questo non è conforme a voi che volete rimuovere le voci duplicate, ma potreste semplicemente personalizzare la vostra ricerca in modo da poter restituire solo uno degli ID duplicati, sia con il "timestamp" più recente o indicizzazione dei dati deduplicati e raggruppamento in base al campo del contenuto: verificare se this post helps. Anche se questo conserverebbe ancora i record duplicati nel tuo indice, almeno non verranno visualizzati nei risultati di ricerca.

Ho trovato anche questo così: Elasticsearch delete duplicates

ho provato a pensare a molti scenari possibili per voi per vedere se una di queste opzioni di lavoro o almeno potrebbe essere una correzione temporanea.

Problemi correlati