Documentation ¶
Overview ¶
Clone an index. Clone an existing index into a new index. Each original primary shard is cloned into a new primary shard in the new index.
IMPORTANT: Elasticsearch does not apply index templates to the resulting index. The API also does not copy index metadata from the original index. Index metadata includes aliases, index lifecycle management phase definitions, and cross-cluster replication (CCR) follower information. For example, if you clone a CCR follower index, the resulting clone will not be a follower index.
The clone API copies most index settings from the source index to the resulting index, with the exception of `index.number_of_replicas` and `index.auto_expand_replicas`. To set the number of replicas in the resulting index, configure these settings in the clone request.
Cloning works as follows:
* First, it creates a new target index with the same definition as the source index. * Then it hard-links segments from the source index into the target index. If the file system does not support hard-linking, all segments are copied into the new index, which is a much more time consuming process. * Finally, it recovers the target index as though it were a closed index which had just been re-opened.
IMPORTANT: Indices can only be cloned if they meet the following requirements:
* The target index must not exist. * The source index must have the same number of primary shards as the target index. * The node handling the clone process must have sufficient free disk space to accommodate a second copy of the existing index.
Index ¶
- Variables
- type Clone
- func (r *Clone) Aliases(aliases map[string]types.Alias) *Clone
- func (r Clone) Do(providedCtx context.Context) (*Response, error)
- func (r *Clone) ErrorTrace(errortrace bool) *Clone
- func (r *Clone) FilterPath(filterpaths ...string) *Clone
- func (r *Clone) Header(key, value string) *Clone
- func (r *Clone) HttpRequest(ctx context.Context) (*http.Request, error)
- func (r *Clone) Human(human bool) *Clone
- func (r *Clone) MasterTimeout(duration string) *Clone
- func (r Clone) Perform(providedCtx context.Context) (*http.Response, error)
- func (r *Clone) Pretty(pretty bool) *Clone
- func (r *Clone) Raw(raw io.Reader) *Clone
- func (r *Clone) Request(req *Request) *Clone
- func (r *Clone) Settings(settings map[string]json.RawMessage) *Clone
- func (r *Clone) Timeout(duration string) *Clone
- func (r *Clone) WaitForActiveShards(waitforactiveshards string) *Clone
- type NewClone
- type Request
- type Response
Constants ¶
This section is empty.
Variables ¶
var ErrBuildPath = errors.New("cannot build path, check for missing path parameters")
ErrBuildPath is returned in case of missing parameters within the build of the request.
Functions ¶
This section is empty.
Types ¶
type Clone ¶
type Clone struct {
// contains filtered or unexported fields
}
func New ¶
func New(tp elastictransport.Interface) *Clone
Clone an index. Clone an existing index into a new index. Each original primary shard is cloned into a new primary shard in the new index.
IMPORTANT: Elasticsearch does not apply index templates to the resulting index. The API also does not copy index metadata from the original index. Index metadata includes aliases, index lifecycle management phase definitions, and cross-cluster replication (CCR) follower information. For example, if you clone a CCR follower index, the resulting clone will not be a follower index.
The clone API copies most index settings from the source index to the resulting index, with the exception of `index.number_of_replicas` and `index.auto_expand_replicas`. To set the number of replicas in the resulting index, configure these settings in the clone request.
Cloning works as follows:
* First, it creates a new target index with the same definition as the source index. * Then it hard-links segments from the source index into the target index. If the file system does not support hard-linking, all segments are copied into the new index, which is a much more time consuming process. * Finally, it recovers the target index as though it were a closed index which had just been re-opened.
IMPORTANT: Indices can only be cloned if they meet the following requirements:
* The target index must not exist. * The source index must have the same number of primary shards as the target index. * The node handling the clone process must have sufficient free disk space to accommodate a second copy of the existing index.
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-clone-index.html
func (Clone) Do ¶
Do runs the request through the transport, handle the response and returns a clone.Response
func (*Clone) ErrorTrace ¶ added in v8.14.0
ErrorTrace When set to `true` Elasticsearch will include the full stack trace of errors when they occur. API name: error_trace
func (*Clone) FilterPath ¶ added in v8.14.0
FilterPath Comma-separated list of filters in dot notation which reduce the response returned by Elasticsearch. API name: filter_path
func (*Clone) HttpRequest ¶
HttpRequest returns the http.Request object built from the given parameters.
func (*Clone) Human ¶ added in v8.14.0
Human When set to `true` will return statistics in a format suitable for humans. For example `"exists_time": "1h"` for humans and `"eixsts_time_in_millis": 3600000` for computers. When disabled the human readable values will be omitted. This makes sense for responses being consumed only by machines. API name: human
func (*Clone) MasterTimeout ¶
MasterTimeout Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. API name: master_timeout
func (Clone) Perform ¶ added in v8.7.0
Perform runs the http.Request through the provided transport and returns an http.Response.
func (*Clone) Pretty ¶ added in v8.14.0
Pretty If set to `true` the returned JSON will be "pretty-formatted". Only use this option for debugging only. API name: pretty
func (*Clone) Raw ¶
Raw takes a json payload as input which is then passed to the http.Request If specified Raw takes precedence on Request method.
func (*Clone) Settings ¶ added in v8.9.0
func (r *Clone) Settings(settings map[string]json.RawMessage) *Clone
Settings Configuration options for the target index. API name: settings
func (*Clone) Timeout ¶
Timeout Period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error. API name: timeout
func (*Clone) WaitForActiveShards ¶
WaitForActiveShards The number of shard copies that must be active before proceeding with the operation. Set to `all` or any positive integer up to the total number of shards in the index (`number_of_replicas+1`). API name: wait_for_active_shards
type NewClone ¶
NewClone type alias for index.
func NewCloneFunc ¶
func NewCloneFunc(tp elastictransport.Interface) NewClone
NewCloneFunc returns a new instance of Clone with the provided transport. Used in the index of the library this allows to retrieve every apis in once place.
type Request ¶
type Request struct { // Aliases Aliases for the resulting index. Aliases map[string]types.Alias `json:"aliases,omitempty"` // Settings Configuration options for the target index. Settings map[string]json.RawMessage `json:"settings,omitempty"` }
Request holds the request body struct for the package clone