OpenSearch/docs/reference/indices/create-index.asciidoc

150 lines
3.8 KiB
Plaintext

[[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
<<index-modules,index modules>> 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 <<indices-warmers,warmers>>:
[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 <<indices-aliases,aliases>>:
[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.