123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- [[indices-warmers]]
- == Warmers
- Index warming allows to run registered search requests to warm up the index
- before it is available for search. With the near real time aspect of search,
- cold data (segments) will be warmed up before they become available for search.
- This includes things such as the filter cache, filesystem cache, and loading
- field data for fields.
- Warmup searches typically include requests that require heavy loading of
- data, such as aggregations or sorting on specific fields. The warmup APIs
- allows to register warmup (search) under specific names, remove them,
- and get them.
- Index warmup can be disabled by setting `index.warmer.enabled` to
- `false`. It is supported as a realtime setting using update settings
- API. This can be handy when doing initial bulk indexing: disable pre
- registered warmers to make indexing faster and less expensive and then
- enable it.
- [float]
- [[creation]]
- === Index Creation / Templates
- Warmers can be registered when an index gets created, for example:
- [source,js]
- --------------------------------------------------
- curl -XPUT localhost:9200/test -d '{
- "warmers" : {
- "warmer_1" : {
- "types" : [],
- "source" : {
- "query" : {
- ...
- },
- "aggs" : {
- ...
- }
- }
- }
- }
- }'
- --------------------------------------------------
- Or, in an index template:
- [source,js]
- --------------------------------------------------
- curl -XPUT localhost:9200/_template/template_1 -d '
- {
- "template" : "te*",
- "warmers" : {
- "warmer_1" : {
- "types" : [],
- "source" : {
- "query" : {
- ...
- },
- "aggs" : {
- ...
- }
- }
- }
- }
- }'
- --------------------------------------------------
- On the same level as `types` and `source`, the `request_cache` flag is supported
- to enable request caching for the warmed search request. If not specified, it will
- use the index level configuration of query caching.
- [float]
- [[warmer-adding]]
- === Put Warmer
- Allows to put a warmup search request on a specific index (or indices),
- with the body composing of a regular search request. Types can be
- provided as part of the URI if the search request is designed to be run
- only against the specific types.
- Here is an example that registers a warmup called `warmer_1` against
- index `test` (can be alias or several indices), for a search request
- that runs against all types:
- [source,js]
- --------------------------------------------------
- curl -XPUT localhost:9200/test/_warmer/warmer_1 -d '{
- "query" : {
- "match_all" : {}
- },
- "aggs" : {
- "aggs_1" : {
- "terms" : {
- "field" : "field"
- }
- }
- }
- }'
- --------------------------------------------------
- And an example that registers a warmup against specific types:
- [source,js]
- --------------------------------------------------
- curl -XPUT localhost:9200/test/type1/_warmer/warmer_1 -d '{
- "query" : {
- "match_all" : {}
- },
- "aggs" : {
- "aggs_1" : {
- "terms" : {
- "field" : "field"
- }
- }
- }
- }'
- --------------------------------------------------
- All options:
- [source,js]
- --------------------------------------------------
- PUT _warmer/{warmer_name}
- PUT /{index}/_warmer/{warmer_name}
-
- PUT /{index}/{type}/_warmer/{warmer_name}
- --------------------------------------------------
-
- where
- [horizontal]
- `{index}`:: `* | _all | glob pattern | name1, name2, …`
-
- `{type}`:: `* | _all | glob pattern | name1, name2, …`
- Instead of `_warmer` you can also use the plural `_warmers`.
- The `request_cache` parameter can be used to enable request caching for
- the search request. If not specified, it will use the index level configuration
- of query caching.
- [float]
- [[removing]]
- === Delete Warmers
- Warmers can be deleted using the following endpoint:
- [source,js]
- --------------------------------------------------
- [DELETE] /{index}/_warmer/{name}
-
- --------------------------------------------------
-
- where
- [horizontal]
- `{index}`:: `* | _all | glob pattern | name1, name2, …`
-
- `{name}`:: `* | _all | glob pattern | name1, name2, …`
- Instead of `_warmer` you can also use the plural `_warmers`.
- [float]
- [[warmer-retrieving]]
- === GETting Warmer
- Getting a warmer for specific index (or alias, or several indices) based
- on its name. The provided name can be a simple wildcard expression or
- omitted to get all warmers.
- Some examples:
- [source,js]
- --------------------------------------------------
- # get warmer named warmer_1 on test index
- curl -XGET localhost:9200/test/_warmer/warmer_1
- # get all warmers that start with warm on test index
- curl -XGET localhost:9200/test/_warmer/warm*
- # get all warmers for test index
- curl -XGET localhost:9200/test/_warmer/
- --------------------------------------------------
|