Quello che tu chiami "tipo" è in realtà un "tipo di mappatura" e il modo per farli è semplicemente utilizzando:
curl -XGET localhost:9200/_all/_mapping
Ora, poiché desideri solo i nomi dei tipi di mappatura, si don' t bisogno di installare nulla, come si può utilizzare semplicemente utilizzare Python per ottenere solo ciò che vuoi da quella risposta precedente:
curl -XGET localhost:9205/_all/_mapping | python -c 'import json,sys; indices=json.load(sys.stdin); indices = [type for index in indices for type in indices.get(index).get("mappings")]; print list(indices);'
sceneggiatura Il Python fa qualcosa di molto semplice, vale a dire che itera su tutti gli indici e la mappatura tipi e recupera solo i nomi di quest'ultimo:
import json,sys;
resp = json.load(sys.stdin);
indices = [type for index in resp for type in indices.get(index).get("mappings")];
print list(indices);'
UPDATE
Dal momento che si sta utilizzando Ruby, lo stesso trucco è disponibile tramite codice Ruby:
curl -XGET localhost:9205/_all/_mapping | ruby -e "require 'rubygems'; require 'json'; resp = JSON.parse(STDIN.read); resp.each { |index, indexSpec | indexSpec['mappings'].each {|type, fields| puts type} }"
Lo script di Ruby si presenta così:
require 'rubygems';
require 'json';
resp = JSON.parse(STDIN.read);
resp.each { |index, indexSpec |
indexSpec['mappings'].each { |type, fields|
puts type
}
}
Non c'è '_type' in ES , se sei interessato solo ai tipi, dai un'occhiata a @Andrew White's [answer here] (http://stackoverflow.com/questions/31087204/get-all-index-and-types-names-from-cluster-in -elasticsearch) sarà necessario [installare jq] (https://stedolan.github.io/jq/download/) per tale – ChintanShah25