2016-07-21 21 views
0

Ich habe einen Index in Elasticsearch erstellt, mit einem Typ t1 und Dokumente doc1 - docN. Gibt es eine Möglichkeit, über einen API-Aufruf einen neuen Typ t2 zu erstellen, der die gleichen Dokumente enthält wie t1 (doc1 - docN)?Elasticsearch - Duplizieren von Typen?

+0

Darf ich fragen, was Ihre Absicht, die hinter dem Kopieren der Dokumente zu einem neuen Typ ist? –

+0

Würde Logstash eine Option für Sie sein? – Val

+0

Laut einem [elastischen Blogpost] (https://www.elastic.co/blog/changing-mapping-with-zero-downtime) Dokumente von einem alten in einen neuen Index neu indizieren (obwohl Sie nach einem Typ gefragt haben), sollte direkt möglich sein. Es ist jedoch nicht sicher, ob diese Informationen noch gültig sind, da Version 2 einige Änderungen in der API hervorgebracht hat. –

Antwort

0

Kein magischer API Anruf dafür. Sie müssen diese Dokumente indizieren. Ich schlage vor, dieses Blog-Post von einem der Elastic Entwickler: http://david.pilato.fr/blog/2015/05/20/reindex-elasticsearch-with-logstash/

Sie würden etwas um diese Linien brauchen:

input { 
    elasticsearch { 
    hosts => [ "localhost:9200" ] 
    index => "test_index" 
    size => 500 
    scroll => "5m" 
    docinfo => true 
    query => '{"query":{"term":{"_type":{"value":"test_type_1"}}}}' 
    } 
} 

filter { 
    mutate { 
    remove_field => [ "@timestamp", "@version" ] 
    } 
} 

output { 
    elasticsearch { 
    host => "localhost" 
    port => "9200" 
    protocol => "http" 
    index => "test_index" 
    document_type => "test_type_2" 
    document_id => "%{[@metadata][_id]}" 
    } 
} 
Verwandte Themen