create

package
v9.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 17, 2025 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Create an index. You can use the create index API to add a new index to an Elasticsearch cluster. When creating an index, you can specify the following:

* Settings for the index. * Mappings for fields in the index. * Index aliases

**Wait for active shards**

By default, index creation will only return a response to the client when the primary copies of each shard have been started, or the request times out. The index creation response will indicate what happened. For example, `acknowledged` indicates whether the index was successfully created in the cluster, `while shards_acknowledged` indicates whether the requisite number of shard copies were started for each shard in the index before timing out. Note that it is still possible for either `acknowledged` or `shards_acknowledged` to be `false`, but for the index creation to be successful. These values simply indicate whether the operation completed before the timeout. If `acknowledged` is false, the request timed out before the cluster state was updated with the newly created index, but it probably will be created sometime soon. If `shards_acknowledged` is false, then the request timed out before the requisite number of shards were started (by default just the primaries), even if the cluster state was successfully updated to reflect the newly created index (that is to say, `acknowledged` is `true`).

You can change the default of only waiting for the primary shards to start through the index setting `index.write.wait_for_active_shards`. Note that changing this setting will also affect the `wait_for_active_shards` value on all subsequent write operations.

Index

Constants

This section is empty.

Variables

View Source
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 Create

type Create struct {
	// contains filtered or unexported fields
}

func New

Create an index. You can use the create index API to add a new index to an Elasticsearch cluster. When creating an index, you can specify the following:

* Settings for the index. * Mappings for fields in the index. * Index aliases

**Wait for active shards**

By default, index creation will only return a response to the client when the primary copies of each shard have been started, or the request times out. The index creation response will indicate what happened. For example, `acknowledged` indicates whether the index was successfully created in the cluster, `while shards_acknowledged` indicates whether the requisite number of shard copies were started for each shard in the index before timing out. Note that it is still possible for either `acknowledged` or `shards_acknowledged` to be `false`, but for the index creation to be successful. These values simply indicate whether the operation completed before the timeout. If `acknowledged` is false, the request timed out before the cluster state was updated with the newly created index, but it probably will be created sometime soon. If `shards_acknowledged` is false, then the request timed out before the requisite number of shards were started (by default just the primaries), even if the cluster state was successfully updated to reflect the newly created index (that is to say, `acknowledged` is `true`).

You can change the default of only waiting for the primary shards to start through the index setting `index.write.wait_for_active_shards`. Note that changing this setting will also affect the `wait_for_active_shards` value on all subsequent write operations.

https://www.elastic.co/docs/api/doc/elasticsearch/v9/operation/operation-indices-create

func (*Create) AddAlias

func (r *Create) AddAlias(key string, value types.AliasVariant) *Create

func (*Create) Aliases

func (r *Create) Aliases(aliases map[string]types.Alias) *Create

Aliases for the index. API name: aliases

func (Create) Do

func (r Create) Do(providedCtx context.Context) (*Response, error)

Do runs the request through the transport, handle the response and returns a create.Response

func (*Create) ErrorTrace

func (r *Create) ErrorTrace(errortrace bool) *Create

ErrorTrace When set to `true` Elasticsearch will include the full stack trace of errors when they occur. API name: error_trace

func (*Create) FilterPath

func (r *Create) FilterPath(filterpaths ...string) *Create

FilterPath Comma-separated list of filters in dot notation which reduce the response returned by Elasticsearch. API name: filter_path

func (*Create) Header

func (r *Create) Header(key, value string) *Create

Header set a key, value pair in the Create headers map.

func (*Create) HttpRequest

func (r *Create) HttpRequest(ctx context.Context) (*http.Request, error)

HttpRequest returns the http.Request object built from the given parameters.

func (*Create) Human

func (r *Create) Human(human bool) *Create

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 (*Create) Mappings

func (r *Create) Mappings(mappings types.TypeMappingVariant) *Create

Mapping for fields in the index. If specified, this mapping can include: - Field names - Field data types - Mapping parameters API name: mappings

func (*Create) MasterTimeout

func (r *Create) MasterTimeout(duration string) *Create

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 (Create) Perform

func (r Create) Perform(providedCtx context.Context) (*http.Response, error)

Perform runs the http.Request through the provided transport and returns an http.Response.

func (*Create) Pretty

func (r *Create) Pretty(pretty bool) *Create

Pretty If set to `true` the returned JSON will be "pretty-formatted". Only use this option for debugging only. API name: pretty

func (*Create) Raw

func (r *Create) Raw(raw io.Reader) *Create

Raw takes a json payload as input which is then passed to the http.Request If specified Raw takes precedence on Request method.

func (*Create) Request

func (r *Create) Request(req *Request) *Create

Request allows to set the request property with the appropriate payload.

func (*Create) Settings

func (r *Create) Settings(settings types.IndexSettingsVariant) *Create

Configuration options for the index. API name: settings

func (*Create) Timeout

func (r *Create) Timeout(duration string) *Create

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 (*Create) WaitForActiveShards

func (r *Create) WaitForActiveShards(waitforactiveshards string) *Create

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 NewCreate

type NewCreate func(index string) *Create

NewCreate type alias for index.

func NewCreateFunc

func NewCreateFunc(tp elastictransport.Interface) NewCreate

NewCreateFunc returns a new instance of Create 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 index.
	Aliases map[string]types.Alias `json:"aliases,omitempty"`
	// Mappings Mapping for fields in the index. If specified, this mapping can include:
	// - Field names
	// - Field data types
	// - Mapping parameters
	Mappings *types.TypeMapping `json:"mappings,omitempty"`
	// Settings Configuration options for the index.
	Settings *types.IndexSettings `json:"settings,omitempty"`
}

Request holds the request body struct for the package create

https://github.com/elastic/elasticsearch-specification/blob/52c473efb1fb5320a5bac12572d0b285882862fb/specification/indices/create/IndicesCreateRequest.ts#L28-L108

func NewRequest

func NewRequest() *Request

NewRequest returns a Request

func (*Request) FromJSON

func (r *Request) FromJSON(data string) (*Request, error)

FromJSON allows to load an arbitrary json into the request structure

type Response

type Response struct {
	Acknowledged       bool   `json:"acknowledged"`
	Index              string `json:"index"`
	ShardsAcknowledged bool   `json:"shards_acknowledged"`
}

Response holds the response body struct for the package create

https://github.com/elastic/elasticsearch-specification/blob/52c473efb1fb5320a5bac12572d0b285882862fb/specification/indices/create/IndicesCreateResponse.ts#L22-L28

func NewResponse

func NewResponse() *Response

NewResponse returns a Response