[[indices-create-index]] == Create Index The create index API allows to instantiate an index. Elasticsearch provides support for multiple indices, including executing operations across several indices. [float] [[create-index-settings]] === Index Settings Each index created can have specific settings associated with it. [source,js] -------------------------------------------------- $ curl -XPUT 'http://localhost:9200/twitter/' $ curl -XPUT 'http://localhost:9200/twitter/' -d ' index : number_of_shards : 3 <1> number_of_replicas : 2 <2> ' -------------------------------------------------- <1> Default for `number_of_shards` is 5 <2> Default for `number_of_replicas` is 1 (ie one replica for each primary shard) The above second curl example shows how an index called `twitter` can be created with specific settings for it using http://www.yaml.org[YAML]. In this case, creating an index with 3 shards, each with 2 replicas. The index settings can also be defined with http://www.json.org[JSON]: [source,js] -------------------------------------------------- $ curl -XPUT 'http://localhost:9200/twitter/' -d '{ "settings" : { "index" : { "number_of_shards" : 3, "number_of_replicas" : 2 } } }' -------------------------------------------------- or more simplified [source,js] -------------------------------------------------- $ curl -XPUT 'http://localhost:9200/twitter/' -d '{ "settings" : { "number_of_shards" : 3, "number_of_replicas" : 2 } }' -------------------------------------------------- [NOTE] You do not have to explicitly specify `index` section inside the `settings` section. For more information regarding all the different index level settings that can be set when creating an index, please check the <> section. [float] [[mappings]] === Mappings The create index API allows to provide a set of one or more mappings: [source,js] -------------------------------------------------- curl -XPOST localhost:9200/test -d '{ "settings" : { "number_of_shards" : 1 }, "mappings" : { "type1" : { "_source" : { "enabled" : false }, "properties" : { "field1" : { "type" : "string", "index" : "not_analyzed" } } } } }' -------------------------------------------------- [float] [[warmers]] === Warmers The create index API allows also to provide a set of <>: [source,js] -------------------------------------------------- curl -XPUT localhost:9200/test -d '{ "warmers" : { "warmer_1" : { "source" : { "query" : { ... } } } } }' -------------------------------------------------- [float] [[create-index-aliases]] === Aliases added[1.1.0] The create index API allows also to provide a set of <>: [source,js] -------------------------------------------------- curl -XPUT localhost:9200/test -d '{ "aliases" : { "alias_1" : {}, "alias_2" : { "filter" : { "term" : {"user" : "kimchy" } }, "routing" : "kimchy" } } }' -------------------------------------------------- [float] === Creation Date coming[1.4.0] When an index is created, a timestamp is stored in the index metadata for the creation date. By default this it is automatically generated but it can also be specified using the `creation_date` parameter on the create index API: [source,js] -------------------------------------------------- curl -XPUT localhost:9200/test -d '{ "creation_date" : 1407751337000 <1> }' -------------------------------------------------- <1> `creation_date` is set using epoch time in milliseconds.