# create an index with an analyzer "myindex" curl -X PUT localhost:9200/myindex -d ' { "settings" : {` "index":{ "number_of_replicas":0, "number_of_shards":1, "analysis":{ "analyzer":{ "first":{ "type":"whitespace" } } } } } }' // verify analyzers for "myindex" curl -XGET 'http://localhost:9200/_cluster/state?pretty&filter_nodes=true&filter_routing_table=true&filter_indices=myindex' # { # "cluster_name" : "elasticsearch", # "blocks" : { }, # "metadata" : { # "templates" : { }, # "indices" : { # "myindex" : { # "state" : "open", # "settings" : { # "index.number_of_replicas" : "0", # "index.number_of_shards" : "1", # "index.analysis.analyzer.first.type" : "whitespace", # "index.version.created" : "191299" # }, # "mappings" : { }, # "aliases" : [ ] # } # } # } # } // try to add a new analyzer curl -XPUT 'localhost:9200/myindex/_settings' -d '{ "analysis" : { "analyzer":{ "second":{ "type":"custom", "tokenizer":"whitespace", "filter":["lowercase"] } } } }' # {"ok":true} // but in fact index setting is not modified - the following is found in the log [WARN ][cluster.metadata ] [Captain Omen] [myindex] ignoring non dynamic index level settings for open indices: [index.analysis.analyzer.second.type, index.analysis.analyzer.second.tokenizer, index.analysis.analyzer.second.filter.0] // close the index curl -XPOST 'localhost:9200/myindex/_close' # {"ok":true,"acknowledged":true} // we can verify index is closed curl -XGET 'http://localhost:9200/_cluster/state?pretty&filter_nodes=true&filter_routing_table=true&filter_indices=myindex' # { # "cluster_name" : "elasticsearch", # "blocks" : { # "indices" : { # "myindex" : { # "4" : { # "description" : "index closed", // <--- myindex is closed # "retryable" : false, # "levels" : [ "read", "write" ] # } # } # } # }, # "metadata" : { # "templates" : { }, # "indices" : { # "myindex" : { # "state" : "close", // <--- state: close # "settings" : { # "index.number_of_replicas" : "0", # "index.number_of_shards" : "1", # "index.analysis.analyzer.first.type" : "whitespace", # "index.version.created" : "191299" # }, # "mappings" : { }, # "aliases" : [ ] # } # } # } # } // try to add a new analyzer again curl -XPUT 'localhost:9200/myindex/_settings' -d '{ "analysis" : { "analyzer":{ "second":{ "type":"custom", "tokenizer":"whitespace", "filter":["lowercase"] } } } }' # {"ok":true} // we can add a new analyzer now curl -XGET 'http://localhost:9200/_cluster/state?pretty&filter_nodes=true&filter_routing_table=true&filter_indices=myindex' # { # "cluster_name" : "elasticsearch", # "blocks" : { # "indices" : { # "myindex" : { # "4" : { # "description" : "index closed", # "retryable" : false, # "levels" : [ "read", "write" ] # } # } # } # }, # "metadata" : { # "templates" : { }, # "indices" : { # "myindex" : { # "state" : "close", # "settings" : { # "index.number_of_replicas" : "0", # "index.number_of_shards" : "1", # "index.analysis.analyzer.first.type" : "whitespace", # "index.version.created" : "191299", # "index.analysis.analyzer.second.tokenizer" : "whitespace", # "index.analysis.analyzer.second.type" : "custom", # "index.analysis.analyzer.second.filter.0" : "lowercase" # }, # "mappings" : { }, # "aliases" : [ ] # } # } # } # } // open the index now curl -XPOST 'localhost:9200/myindex/_open' # {"ok":true,"acknowledged":true} // now everything seems to be ok curl -XGET 'http://localhost:9200/_cluster/state?pretty&filter_nodes=true&filter_routing_table=true&filter_indices=myindex' # { # "cluster_name" : "elasticsearch", # "blocks" : { }, # "metadata" : { # "templates" : { }, # "indices" : { # "myindex" : { # "state" : "open", # "settings" : { # "index.number_of_replicas" : "0", # "index.number_of_shards" : "1", # "index.analysis.analyzer.first.type" : "whitespace", # "index.version.created" : "191299", # "index.analysis.analyzer.second.tokenizer" : "whitespace", # "index.analysis.analyzer.second.type" : "custom", # "index.analysis.analyzer.second.filter.0" : "lowercase" # }, # "mappings" : { }, # "aliases" : [ ] # } # } # } # }