query

package
v8.18.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: 13 Imported by: 4

Documentation

Overview

Get SQL search results. Run an SQL request.

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 NewQuery

type NewQuery func() *Query

NewQuery type alias for index.

func NewQueryFunc

func NewQueryFunc(tp elastictransport.Interface) NewQuery

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

type Query

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

func (*Query) AddParam added in v8.18.0

func (r *Query) AddParam(key string, value json.RawMessage) *Query

func (*Query) AllowPartialSearchResults added in v8.18.0

func (r *Query) AllowPartialSearchResults(allowpartialsearchresults bool) *Query

If `true`, the response has partial results when there are shard request timeouts or shard failures. If `false`, the API returns an error with no partial results. API name: allow_partial_search_results

func (*Query) Catalog added in v8.9.0

func (r *Query) Catalog(catalog string) *Query

The default catalog (cluster) for queries. If unspecified, the queries execute on the data in the local cluster only. API name: catalog

func (*Query) Columnar added in v8.9.0

func (r *Query) Columnar(columnar bool) *Query

If `true`, the results are in a columnar fashion: one row represents all the values of a certain column from the current page of results. The API supports this parameter only for CBOR, JSON, SMILE, and YAML responses. API name: columnar

func (*Query) Cursor added in v8.9.0

func (r *Query) Cursor(cursor string) *Query

The cursor used to retrieve a set of paginated results. If you specify a cursor, the API only uses the `columnar` and `time_zone` request body parameters. It ignores other request body parameters. API name: cursor

func (Query) Do

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

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

func (*Query) ErrorTrace added in v8.14.0

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

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

func (*Query) FetchSize added in v8.9.0

func (r *Query) FetchSize(fetchsize int) *Query

The maximum number of rows (or entries) to return in one response. API name: fetch_size

func (*Query) FieldMultiValueLeniency added in v8.9.0

func (r *Query) FieldMultiValueLeniency(fieldmultivalueleniency bool) *Query

If `false`, the API returns an exception when encountering multiple values for a field. If `true`, the API is lenient and returns the first value from the array with no guarantee of consistent results. API name: field_multi_value_leniency

func (*Query) Filter added in v8.9.0

func (r *Query) Filter(filter types.QueryVariant) *Query

The Elasticsearch query DSL for additional filtering. API name: filter

func (*Query) FilterPath added in v8.14.0

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

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

func (*Query) Format

func (r *Query) Format(format sqlformat.SqlFormat) *Query

Format The format for the response. You can also specify a format using the `Accept` HTTP header. If you specify both this parameter and the `Accept` HTTP header, this parameter takes precedence. API name: format

func (*Query) Header

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

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

func (*Query) HttpRequest

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

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

func (*Query) Human added in v8.14.0

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

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 (*Query) IndexUsingFrozen added in v8.9.0

func (r *Query) IndexUsingFrozen(indexusingfrozen bool) *Query

If `true`, the search can run on frozen indices. API name: index_using_frozen

func (*Query) KeepAlive added in v8.9.0

func (r *Query) KeepAlive(duration types.DurationVariant) *Query

The retention period for an async or saved synchronous search. API name: keep_alive

func (*Query) KeepOnCompletion added in v8.9.0

func (r *Query) KeepOnCompletion(keeponcompletion bool) *Query

If `true`, Elasticsearch stores synchronous searches if you also specify the `wait_for_completion_timeout` parameter. If `false`, Elasticsearch only stores async searches that don't finish before the `wait_for_completion_timeout`. API name: keep_on_completion

func (*Query) PageTimeout added in v8.9.0

func (r *Query) PageTimeout(duration types.DurationVariant) *Query

The minimum retention period for the scroll cursor. After this time period, a pagination request might fail because the scroll cursor is no longer available. Subsequent scroll requests prolong the lifetime of the scroll cursor by the duration of `page_timeout` in the scroll request. API name: page_timeout

func (*Query) Params added in v8.9.0

func (r *Query) Params(params map[string]json.RawMessage) *Query

The values for parameters in the query. API name: params

func (Query) Perform added in v8.7.0

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

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

func (*Query) Pretty added in v8.14.0

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

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

func (*Query) Query added in v8.9.0

func (r *Query) Query(query string) *Query

The SQL query to run. API name: query

func (*Query) Raw

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

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

func (*Query) Request

func (r *Query) Request(req *Request) *Query

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

func (*Query) RequestTimeout added in v8.9.0

func (r *Query) RequestTimeout(duration types.DurationVariant) *Query

The timeout before the request fails. API name: request_timeout

func (*Query) RuntimeMappings added in v8.9.0

func (r *Query) RuntimeMappings(runtimefields types.RuntimeFieldsVariant) *Query

One or more runtime fields for the search request. These fields take precedence over mapped fields with the same name. API name: runtime_mappings

func (*Query) TimeZone added in v8.9.0

func (r *Query) TimeZone(timezone string) *Query

The ISO-8601 time zone ID for the search. API name: time_zone

func (*Query) WaitForCompletionTimeout added in v8.9.0

func (r *Query) WaitForCompletionTimeout(duration types.DurationVariant) *Query

The period to wait for complete results. It defaults to no timeout, meaning the request waits for complete search results. If the search doesn't finish within this period, the search becomes async.

To save a synchronous search, you must specify this parameter and the `keep_on_completion` parameter. API name: wait_for_completion_timeout

type Request

type Request struct {

	// AllowPartialSearchResults If `true`, the response has partial results when there are shard request
	// timeouts or shard failures.
	// If `false`, the API returns an error with no partial results.
	AllowPartialSearchResults *bool `json:"allow_partial_search_results,omitempty"`
	// Catalog The default catalog (cluster) for queries.
	// If unspecified, the queries execute on the data in the local cluster only.
	Catalog *string `json:"catalog,omitempty"`
	// Columnar If `true`, the results are in a columnar fashion: one row represents all the
	// values of a certain column from the current page of results.
	// The API supports this parameter only for CBOR, JSON, SMILE, and YAML
	// responses.
	Columnar *bool `json:"columnar,omitempty"`
	// Cursor The cursor used to retrieve a set of paginated results.
	// If you specify a cursor, the API only uses the `columnar` and `time_zone`
	// request body parameters.
	// It ignores other request body parameters.
	Cursor *string `json:"cursor,omitempty"`
	// FetchSize The maximum number of rows (or entries) to return in one response.
	FetchSize *int `json:"fetch_size,omitempty"`
	// FieldMultiValueLeniency If `false`, the API returns an exception when encountering multiple values
	// for a field.
	// If `true`, the API is lenient and returns the first value from the array with
	// no guarantee of consistent results.
	FieldMultiValueLeniency *bool `json:"field_multi_value_leniency,omitempty"`
	// Filter The Elasticsearch query DSL for additional filtering.
	Filter *types.Query `json:"filter,omitempty"`
	// IndexUsingFrozen If `true`, the search can run on frozen indices.
	IndexUsingFrozen *bool `json:"index_using_frozen,omitempty"`
	// KeepAlive The retention period for an async or saved synchronous search.
	KeepAlive types.Duration `json:"keep_alive,omitempty"`
	// KeepOnCompletion If `true`, Elasticsearch stores synchronous searches if you also specify the
	// `wait_for_completion_timeout` parameter.
	// If `false`, Elasticsearch only stores async searches that don't finish before
	// the `wait_for_completion_timeout`.
	KeepOnCompletion *bool `json:"keep_on_completion,omitempty"`
	// PageTimeout The minimum retention period for the scroll cursor.
	// After this time period, a pagination request might fail because the scroll
	// cursor is no longer available.
	// Subsequent scroll requests prolong the lifetime of the scroll cursor by the
	// duration of `page_timeout` in the scroll request.
	PageTimeout types.Duration `json:"page_timeout,omitempty"`
	// Params The values for parameters in the query.
	Params map[string]json.RawMessage `json:"params,omitempty"`
	// Query The SQL query to run.
	Query *string `json:"query,omitempty"`
	// RequestTimeout The timeout before the request fails.
	RequestTimeout types.Duration `json:"request_timeout,omitempty"`
	// RuntimeMappings One or more runtime fields for the search request.
	// These fields take precedence over mapped fields with the same name.
	RuntimeMappings types.RuntimeFields `json:"runtime_mappings,omitempty"`
	// TimeZone The ISO-8601 time zone ID for the search.
	TimeZone *string `json:"time_zone,omitempty"`
	// WaitForCompletionTimeout The period to wait for complete results.
	// It defaults to no timeout, meaning the request waits for complete search
	// results.
	// If the search doesn't finish within this period, the search becomes async.
	//
	// To save a synchronous search, you must specify this parameter and the
	// `keep_on_completion` parameter.
	WaitForCompletionTimeout types.Duration `json:"wait_for_completion_timeout,omitempty"`
}

Request holds the request body struct for the package query

https://github.com/elastic/elasticsearch-specification/blob/f6a370d0fba975752c644fc730f7c45610e28f36/specification/sql/query/QuerySqlRequest.ts#L28-L152

func NewRequest added in v8.5.0

func NewRequest() *Request

NewRequest returns a Request

func (*Request) FromJSON added in v8.5.0

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

FromJSON allows to load an arbitrary json into the request structure

func (*Request) UnmarshalJSON added in v8.12.1

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

type Response added in v8.7.0

type Response struct {

	// Columns Column headings for the search results. Each object is a column.
	Columns []types.Column `json:"columns,omitempty"`
	// Cursor The cursor for the next set of paginated results.
	// For CSV, TSV, and TXT responses, this value is returned in the `Cursor` HTTP
	// header.
	Cursor *string `json:"cursor,omitempty"`
	// Id The identifier for the search.
	// This value is returned only for async and saved synchronous searches.
	// For CSV, TSV, and TXT responses, this value is returned in the `Async-ID`
	// HTTP header.
	Id *string `json:"id,omitempty"`
	// IsPartial If `true`, the response does not contain complete search results.
	// If `is_partial` is `true` and `is_running` is `true`, the search is still
	// running.
	// If `is_partial` is `true` but `is_running` is `false`, the results are
	// partial due to a failure or timeout.
	// This value is returned only for async and saved synchronous searches.
	// For CSV, TSV, and TXT responses, this value is returned in the
	// `Async-partial` HTTP header.
	IsPartial *bool `json:"is_partial,omitempty"`
	// IsRunning If `true`, the search is still running.
	// If `false`, the search has finished.
	// This value is returned only for async and saved synchronous searches.
	// For CSV, TSV, and TXT responses, this value is returned in the
	// `Async-partial` HTTP header.
	IsRunning *bool `json:"is_running,omitempty"`
	// Rows The values for the search results.
	Rows [][]json.RawMessage `json:"rows"`
}

Response holds the response body struct for the package query

https://github.com/elastic/elasticsearch-specification/blob/f6a370d0fba975752c644fc730f7c45610e28f36/specification/sql/query/QuerySqlResponse.ts#L23-L60

func NewResponse added in v8.7.0

func NewResponse() *Response

NewResponse returns a Response

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL