Adding the indices.shrink API
This commit is contained in:
@@ -826,3 +826,31 @@ class IndicesClient(NamespacedClient):
|
|||||||
"""
|
"""
|
||||||
return self.transport.perform_request('POST', _make_path(index,
|
return self.transport.perform_request('POST', _make_path(index,
|
||||||
'_forcemerge'), params=params)
|
'_forcemerge'), params=params)
|
||||||
|
|
||||||
|
@query_params('master_timeout', 'timeout')
|
||||||
|
def shrink(self, index, target, body=None, params=None):
|
||||||
|
"""
|
||||||
|
The shrink index API allows you to shrink an existing index into a new
|
||||||
|
index with fewer primary shards. The number of primary shards in the
|
||||||
|
target index must be a factor of the shards in the source index. For
|
||||||
|
example an index with 8 primary shards can be shrunk into 4, 2 or 1
|
||||||
|
primary shards or an index with 15 primary shards can be shrunk into 5,
|
||||||
|
3 or 1. If the number of shards in the index is a prime number it can
|
||||||
|
only be shrunk into a single primary shard. Before shrinking, a
|
||||||
|
(primary or replica) copy of every shard in the index must be present
|
||||||
|
on the same node.
|
||||||
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-shrink-index.html>`_
|
||||||
|
|
||||||
|
:arg index: The name of the source index to shrink
|
||||||
|
:arg target: The name of the target index to shrink into
|
||||||
|
:arg body: The configuration for the target index (`settings` and
|
||||||
|
`aliases`)
|
||||||
|
:arg master_timeout: Specify timeout for connection to master
|
||||||
|
:arg timeout: Explicit operation timeout
|
||||||
|
"""
|
||||||
|
for param in (index, target):
|
||||||
|
if param in SKIP_IN_PATH:
|
||||||
|
raise ValueError("Empty value passed for a required argument.")
|
||||||
|
return self.transport.perform_request('PUT', _make_path(index,
|
||||||
|
'_shrink', target), params=params, body=body)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user