2013-08-28 19:24:34 -04:00
|
|
|
[[indices-optimize]]
|
|
|
|
== Optimize
|
|
|
|
|
|
|
|
The optimize API allows to optimize one or more indices through an API.
|
|
|
|
The optimize process basically optimizes the index for faster search
|
|
|
|
operations (and relates to the number of segments a Lucene index holds
|
|
|
|
within each shard). The optimize operation allows to reduce the number
|
|
|
|
of segments by merging them.
|
|
|
|
|
2015-02-10 17:52:19 -05:00
|
|
|
This call will block until the optimize is complete. If the http connection
|
|
|
|
is lost, the request will continue in the background, and
|
|
|
|
any new requests will block until the previous optimize is complete.
|
|
|
|
|
2013-08-28 19:24:34 -04:00
|
|
|
[source,js]
|
|
|
|
--------------------------------------------------
|
|
|
|
$ curl -XPOST 'http://localhost:9200/twitter/_optimize'
|
|
|
|
--------------------------------------------------
|
|
|
|
|
|
|
|
[float]
|
2013-09-30 17:32:00 -04:00
|
|
|
[[optimize-parameters]]
|
2013-08-28 19:24:34 -04:00
|
|
|
=== Request Parameters
|
|
|
|
|
|
|
|
The optimize API accepts the following request parameters:
|
|
|
|
|
2013-09-16 10:12:51 -04:00
|
|
|
[horizontal]
|
|
|
|
`max_num_segments`:: The number of segments to optimize to. To fully
|
2013-08-28 19:24:34 -04:00
|
|
|
optimize the index, set it to `1`. Defaults to simply checking if a
|
|
|
|
merge needs to execute, and if so, executes it.
|
|
|
|
|
2014-06-02 18:49:01 -04:00
|
|
|
`only_expunge_deletes`:: Should the optimize process only expunge segments with
|
|
|
|
deletes in it. In Lucene, a document is not deleted from a segment, just marked
|
|
|
|
as deleted. During a merge process of segments, a new segment is created that
|
|
|
|
does not have those deletes. This flag allows to only merge segments that have
|
|
|
|
deletes. Defaults to `false`. Note that this won't override the
|
|
|
|
`index.merge.policy.expunge_deletes_allowed` threshold.
|
2013-08-28 19:24:34 -04:00
|
|
|
|
2013-09-16 10:12:51 -04:00
|
|
|
`flush`:: Should a flush be performed after the optimize. Defaults to
|
2013-08-28 19:24:34 -04:00
|
|
|
`true`.
|
|
|
|
|
|
|
|
[float]
|
2013-09-30 17:32:00 -04:00
|
|
|
[[optimize-multi-index]]
|
2013-08-28 19:24:34 -04:00
|
|
|
=== Multi Index
|
|
|
|
|
|
|
|
The optimize API can be applied to more than one index with a single
|
|
|
|
call, or even on `_all` the indices.
|
|
|
|
|
|
|
|
[source,js]
|
|
|
|
--------------------------------------------------
|
|
|
|
$ curl -XPOST 'http://localhost:9200/kimchy,elasticsearch/_optimize'
|
|
|
|
|
|
|
|
$ curl -XPOST 'http://localhost:9200/_optimize'
|
|
|
|
--------------------------------------------------
|