Documentation ¶
Overview ¶
Force a merge. Perform the force merge operation on the shards of one or more indices. For data streams, the API forces a merge on the shards of the stream's backing indices.
Merging reduces the number of segments in each shard by merging some of them together and also frees up the space used by deleted documents. Merging normally happens automatically, but sometimes it is useful to trigger a merge manually.
WARNING: We recommend force merging only a read-only index (meaning the index is no longer receiving writes). When documents are updated or deleted, the old version is not immediately removed but instead soft-deleted and marked with a "tombstone". These soft-deleted documents are automatically cleaned up during regular segment merges. But force merge can cause very large (greater than 5 GB) segments to be produced, which are not eligible for regular merges. So the number of soft-deleted documents can then grow rapidly, resulting in higher disk usage and worse search performance. If you regularly force merge an index receiving writes, this can also make snapshots more expensive, since the new documents can't be backed up incrementally.
Index ¶
- Variables
- type Forcemerge
- func (r *Forcemerge) AllowNoIndices(allownoindices bool) *Forcemerge
- func (r Forcemerge) Do(providedCtx context.Context) (*Response, error)
- func (r *Forcemerge) ErrorTrace(errortrace bool) *Forcemerge
- func (r *Forcemerge) ExpandWildcards(expandwildcards ...expandwildcard.ExpandWildcard) *Forcemerge
- func (r *Forcemerge) FilterPath(filterpaths ...string) *Forcemerge
- func (r *Forcemerge) Flush(flush bool) *Forcemerge
- func (r *Forcemerge) Header(key, value string) *Forcemerge
- func (r *Forcemerge) HttpRequest(ctx context.Context) (*http.Request, error)
- func (r *Forcemerge) Human(human bool) *Forcemerge
- func (r *Forcemerge) IgnoreUnavailable(ignoreunavailable bool) *Forcemerge
- func (r *Forcemerge) Index(index string) *Forcemerge
- func (r Forcemerge) IsSuccess(providedCtx context.Context) (bool, error)
- func (r *Forcemerge) MaxNumSegments(maxnumsegments string) *Forcemerge
- func (r *Forcemerge) OnlyExpungeDeletes(onlyexpungedeletes bool) *Forcemerge
- func (r Forcemerge) Perform(providedCtx context.Context) (*http.Response, error)
- func (r *Forcemerge) Pretty(pretty bool) *Forcemerge
- func (r *Forcemerge) WaitForCompletion(waitforcompletion bool) *Forcemerge
- type NewForcemerge
- 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 Forcemerge ¶
type Forcemerge struct {
// contains filtered or unexported fields
}
func New ¶
func New(tp elastictransport.Interface) *Forcemerge
Force a merge. Perform the force merge operation on the shards of one or more indices. For data streams, the API forces a merge on the shards of the stream's backing indices.
Merging reduces the number of segments in each shard by merging some of them together and also frees up the space used by deleted documents. Merging normally happens automatically, but sometimes it is useful to trigger a merge manually.
WARNING: We recommend force merging only a read-only index (meaning the index is no longer receiving writes). When documents are updated or deleted, the old version is not immediately removed but instead soft-deleted and marked with a "tombstone". These soft-deleted documents are automatically cleaned up during regular segment merges. But force merge can cause very large (greater than 5 GB) segments to be produced, which are not eligible for regular merges. So the number of soft-deleted documents can then grow rapidly, resulting in higher disk usage and worse search performance. If you regularly force merge an index receiving writes, this can also make snapshots more expensive, since the new documents can't be backed up incrementally.
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-forcemerge.html
func (*Forcemerge) AllowNoIndices ¶
func (r *Forcemerge) AllowNoIndices(allownoindices bool) *Forcemerge
AllowNoIndices Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) API name: allow_no_indices
func (Forcemerge) Do ¶
func (r Forcemerge) Do(providedCtx context.Context) (*Response, error)
Do runs the request through the transport, handle the response and returns a forcemerge.Response
func (*Forcemerge) ErrorTrace ¶ added in v8.14.0
func (r *Forcemerge) ErrorTrace(errortrace bool) *Forcemerge
ErrorTrace When set to `true` Elasticsearch will include the full stack trace of errors when they occur. API name: error_trace
func (*Forcemerge) ExpandWildcards ¶
func (r *Forcemerge) ExpandWildcards(expandwildcards ...expandwildcard.ExpandWildcard) *Forcemerge
ExpandWildcards Whether to expand wildcard expression to concrete indices that are open, closed or both. API name: expand_wildcards
func (*Forcemerge) FilterPath ¶ added in v8.14.0
func (r *Forcemerge) FilterPath(filterpaths ...string) *Forcemerge
FilterPath Comma-separated list of filters in dot notation which reduce the response returned by Elasticsearch. API name: filter_path
func (*Forcemerge) Flush ¶
func (r *Forcemerge) Flush(flush bool) *Forcemerge
Flush Specify whether the index should be flushed after performing the operation (default: true) API name: flush
func (*Forcemerge) Header ¶
func (r *Forcemerge) Header(key, value string) *Forcemerge
Header set a key, value pair in the Forcemerge headers map.
func (*Forcemerge) HttpRequest ¶
HttpRequest returns the http.Request object built from the given parameters.
func (*Forcemerge) Human ¶ added in v8.14.0
func (r *Forcemerge) Human(human bool) *Forcemerge
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 (*Forcemerge) IgnoreUnavailable ¶
func (r *Forcemerge) IgnoreUnavailable(ignoreunavailable bool) *Forcemerge
IgnoreUnavailable Whether specified concrete indices should be ignored when unavailable (missing or closed) API name: ignore_unavailable
func (*Forcemerge) Index ¶
func (r *Forcemerge) Index(index string) *Forcemerge
Index A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices API Name: index
func (Forcemerge) IsSuccess ¶
func (r Forcemerge) IsSuccess(providedCtx context.Context) (bool, error)
IsSuccess allows to run a query with a context and retrieve the result as a boolean. This only exists for endpoints without a request payload and allows for quick control flow.
func (*Forcemerge) MaxNumSegments ¶
func (r *Forcemerge) MaxNumSegments(maxnumsegments string) *Forcemerge
MaxNumSegments The number of segments the index should be merged into (default: dynamic) API name: max_num_segments
func (*Forcemerge) OnlyExpungeDeletes ¶
func (r *Forcemerge) OnlyExpungeDeletes(onlyexpungedeletes bool) *Forcemerge
OnlyExpungeDeletes Specify whether the operation should only expunge deleted documents API name: only_expunge_deletes
func (Forcemerge) Perform ¶ added in v8.7.0
Perform runs the http.Request through the provided transport and returns an http.Response.
func (*Forcemerge) Pretty ¶ added in v8.14.0
func (r *Forcemerge) Pretty(pretty bool) *Forcemerge
Pretty If set to `true` the returned JSON will be "pretty-formatted". Only use this option for debugging only. API name: pretty
func (*Forcemerge) WaitForCompletion ¶
func (r *Forcemerge) WaitForCompletion(waitforcompletion bool) *Forcemerge
WaitForCompletion Should the request wait until the force merge is completed. API name: wait_for_completion
type NewForcemerge ¶
type NewForcemerge func() *Forcemerge
NewForcemerge type alias for index.
func NewForcemergeFunc ¶
func NewForcemergeFunc(tp elastictransport.Interface) NewForcemerge
NewForcemergeFunc returns a new instance of Forcemerge with the provided transport. Used in the index of the library this allows to retrieve every apis in once place.
type Response ¶ added in v8.7.0
type Response struct { Shards_ *types.ShardStatistics `json:"_shards,omitempty"` // Task task contains a task id returned when wait_for_completion=false, // you can use the task_id to get the status of the task at _tasks/<task_id> Task *string `json:"task,omitempty"` }
Response holds the response body struct for the package forcemerge