putrule

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: 14 Imported by: 0

Documentation

Overview

Create or update a query rule. Create or update a query rule within a query ruleset.

IMPORTANT: Due to limitations within pinned queries, you can only pin documents using ids or docs, but cannot use both in single rule. It is advised to use one or the other in query rulesets, to avoid errors. Additionally, pinned queries have a maximum limit of 100 pinned hits. If multiple matching rules pin more than 100 documents, only the first 100 documents are pinned in the order they are specified in the ruleset.

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 NewPutRule

type NewPutRule func(rulesetid, ruleid string) *PutRule

NewPutRule type alias for index.

func NewPutRuleFunc

func NewPutRuleFunc(tp elastictransport.Interface) NewPutRule

NewPutRuleFunc returns a new instance of PutRule with the provided transport. Used in the index of the library this allows to retrieve every apis in once place.

type PutRule

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

func New

Create or update a query rule. Create or update a query rule within a query ruleset.

IMPORTANT: Due to limitations within pinned queries, you can only pin documents using ids or docs, but cannot use both in single rule. It is advised to use one or the other in query rulesets, to avoid errors. Additionally, pinned queries have a maximum limit of 100 pinned hits. If multiple matching rules pin more than 100 documents, only the first 100 documents are pinned in the order they are specified in the ruleset.

https://www.elastic.co/docs/api/doc/elasticsearch/v9/operation/operation-query-rules-put-rule

func (*PutRule) Actions

func (r *PutRule) Actions(actions types.QueryRuleActionsVariant) *PutRule

The actions to take when the rule is matched. The format of this action depends on the rule type. API name: actions

func (*PutRule) Criteria

func (r *PutRule) Criteria(criteria ...types.QueryRuleCriteriaVariant) *PutRule

The criteria that must be met for the rule to be applied. If multiple criteria are specified for a rule, all criteria must be met for the rule to be applied. API name: criteria

func (PutRule) Do

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

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

func (*PutRule) ErrorTrace

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

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

func (*PutRule) FilterPath

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

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

func (*PutRule) Header

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

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

func (*PutRule) HttpRequest

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

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

func (*PutRule) Human

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

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

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

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

func (*PutRule) Pretty

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

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

func (*PutRule) Priority

func (r *PutRule) Priority(priority int) *PutRule

API name: priority

func (*PutRule) Raw

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

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

func (*PutRule) Request

func (r *PutRule) Request(req *Request) *PutRule

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

func (*PutRule) Type

func (r *PutRule) Type(type_ queryruletype.QueryRuleType) *PutRule

The type of rule. API name: type

type Request

type Request struct {

	// Actions The actions to take when the rule is matched.
	// The format of this action depends on the rule type.
	Actions types.QueryRuleActions `json:"actions"`
	// Criteria The criteria that must be met for the rule to be applied.
	// If multiple criteria are specified for a rule, all criteria must be met for
	// the rule to be applied.
	Criteria []types.QueryRuleCriteria `json:"criteria"`
	Priority *int                      `json:"priority,omitempty"`
	// Type The type of rule.
	Type queryruletype.QueryRuleType `json:"type"`
}

Request holds the request body struct for the package putrule

https://github.com/elastic/elasticsearch-specification/blob/52c473efb1fb5320a5bac12572d0b285882862fb/specification/query_rules/put_rule/QueryRulePutRequest.ts#L28-L79

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

func (*Request) UnmarshalJSON

func (s *Request) UnmarshalJSON(data []byte) error

type Response

type Response struct {
	Result result.Result `json:"result"`
}

Response holds the response body struct for the package putrule

https://github.com/elastic/elasticsearch-specification/blob/52c473efb1fb5320a5bac12572d0b285882862fb/specification/query_rules/put_rule/QueryRulePutResponse.ts#L22-L26

func NewResponse

func NewResponse() *Response

NewResponse returns a Response