ElasticSearch for performance reasons stores some data in memory and on a transaction log. If we want to free the memory, empty the translation log and be sure that our data is safely written on the disk we need to flush an index.
You need a working ElasticSearch cluster and the index created in the Creating an index recipe.
The HTTP method used for both operations is POST.
The URL format for flushing an index is as follows:
http://<server>/<index_name(s)>/_flush[?refresh=True
]
The URL format for flushing all the indices in a cluster is as follows:
http://<server>/_flush[?refresh=True]
For flushing an index, we need to perform the following steps:
curl -XPOST 'http://localhost:9200/myindex/_flush?refresh=True'
{"ok":true,"_shards":{"total":4,"successful":2,"failed":0}}
The result contains the state ok
and the shard operation status.
ElasticSearch tries not to put overhead in I/O operations caching in memory some data to reduce writing: in this way it is able to improve the performance.
To clean up memory and force this data on disk, the flush operation is required.
ElasticSearch automatically provides periodic flush on disk, but forcing flush can be useful in the following instances:
In the flush call, it is possible to give an extra request parameter, refresh
to force also the index refresh.
18.216.188.62