findstructure

package
v8.13.1 Latest Latest
Warning

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

Go to latest
Published: Apr 11, 2024 License: Apache-2.0 Imports: 12 Imported by: 1

Documentation

Overview

Finds the structure of a text file. The text file must contain data that is suitable to be ingested into Elasticsearch.

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 FindStructure

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

func New

Finds the structure of a text file. The text file must contain data that is suitable to be ingested into Elasticsearch.

https://www.elastic.co/guide/en/elasticsearch/reference/current/find-structure.html

func (*FindStructure) Charset

func (r *FindStructure) Charset(charset string) *FindStructure

Charset The text’s character set. It must be a character set that is supported by the JVM that Elasticsearch uses. For example, UTF-8, UTF-16LE, windows-1252, or EUC-JP. If this parameter is not specified, the structure finder chooses an appropriate character set. API name: charset

func (*FindStructure) ColumnNames

func (r *FindStructure) ColumnNames(columnnames string) *FindStructure

ColumnNames If you have set format to delimited, you can specify the column names in a comma-separated list. If this parameter is not specified, the structure finder uses the column names from the header row of the text. If the text does not have a header role, columns are named "column1", "column2", "column3", etc. API name: column_names

func (*FindStructure) Delimiter

func (r *FindStructure) Delimiter(delimiter string) *FindStructure

Delimiter If you have set format to delimited, you can specify the character used to delimit the values in each row. Only a single character is supported; the delimiter cannot have multiple characters. By default, the API considers the following possibilities: comma, tab, semi-colon, and pipe (|). In this default scenario, all rows must have the same number of fields for the delimited format to be detected. If you specify a delimiter, up to 10% of the rows can have a different number of columns than the first row. API name: delimiter

func (FindStructure) Do

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

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

func (*FindStructure) EcsCompatibility added in v8.13.0

func (r *FindStructure) EcsCompatibility(ecscompatibility string) *FindStructure

EcsCompatibility The mode of compatibility with ECS compliant Grok patterns (disabled or v1, default: disabled). API name: ecs_compatibility

func (*FindStructure) Explain

func (r *FindStructure) Explain(explain bool) *FindStructure

Explain If this parameter is set to true, the response includes a field named explanation, which is an array of strings that indicate how the structure finder produced its result. API name: explain

func (*FindStructure) Format

func (r *FindStructure) Format(format string) *FindStructure

Format The high level structure of the text. Valid values are ndjson, xml, delimited, and semi_structured_text. By default, the API chooses the format. In this default scenario, all rows must have the same number of fields for a delimited format to be detected. If the format is set to delimited and the delimiter is not set, however, the API tolerates up to 5% of rows that have a different number of columns than the first row. API name: format

func (*FindStructure) GrokPattern

func (r *FindStructure) GrokPattern(grokpattern string) *FindStructure

GrokPattern If you have set format to semi_structured_text, you can specify a Grok pattern that is used to extract fields from every message in the text. The name of the timestamp field in the Grok pattern must match what is specified in the timestamp_field parameter. If that parameter is not specified, the name of the timestamp field in the Grok pattern must match "timestamp". If grok_pattern is not specified, the structure finder creates a Grok pattern. API name: grok_pattern

func (*FindStructure) HasHeaderRow

func (r *FindStructure) HasHeaderRow(hasheaderrow bool) *FindStructure

HasHeaderRow If you have set format to delimited, you can use this parameter to indicate whether the column names are in the first row of the text. If this parameter is not specified, the structure finder guesses based on the similarity of the first row of the text to other rows. API name: has_header_row

func (*FindStructure) Header

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

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

func (*FindStructure) HttpRequest

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

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

func (*FindStructure) LineMergeSizeLimit

func (r *FindStructure) LineMergeSizeLimit(linemergesizelimit string) *FindStructure

LineMergeSizeLimit The maximum number of characters in a message when lines are merged to form messages while analyzing semi-structured text. If you have extremely long messages you may need to increase this, but be aware that this may lead to very long processing times if the way to group lines into messages is misdetected. API name: line_merge_size_limit

func (*FindStructure) LinesToSample

func (r *FindStructure) LinesToSample(linestosample string) *FindStructure

LinesToSample The number of lines to include in the structural analysis, starting from the beginning of the text. The minimum is 2; If the value of this parameter is greater than the number of lines in the text, the analysis proceeds (as long as there are at least two lines in the text) for all of the lines. API name: lines_to_sample

func (FindStructure) Perform

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

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

func (*FindStructure) Quote

func (r *FindStructure) Quote(quote string) *FindStructure

Quote If you have set format to delimited, you can specify the character used to quote the values in each row if they contain newlines or the delimiter character. Only a single character is supported. If this parameter is not specified, the default value is a double quote ("). If your delimited text format does not use quoting, a workaround is to set this argument to a character that does not appear anywhere in the sample. API name: quote

func (*FindStructure) Raw

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

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

func (*FindStructure) Request

func (r *FindStructure) Request(req *Request) *FindStructure

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

func (*FindStructure) ShouldTrimFields

func (r *FindStructure) ShouldTrimFields(shouldtrimfields bool) *FindStructure

ShouldTrimFields If you have set format to delimited, you can specify whether values between delimiters should have whitespace trimmed from them. If this parameter is not specified and the delimiter is pipe (|), the default value is true. Otherwise, the default value is false. API name: should_trim_fields

func (*FindStructure) Timeout

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

Timeout Sets the maximum amount of time that the structure analysis make take. If the analysis is still running when the timeout expires then it will be aborted. API name: timeout

func (*FindStructure) TimestampField

func (r *FindStructure) TimestampField(field string) *FindStructure

TimestampField Optional parameter to specify the timestamp field in the file API name: timestamp_field

func (*FindStructure) TimestampFormat

func (r *FindStructure) TimestampFormat(timestampformat string) *FindStructure

TimestampFormat The Java time format of the timestamp field in the text. API name: timestamp_format

type NewFindStructure

type NewFindStructure func() *FindStructure

NewFindStructure type alias for index.

func NewFindStructureFunc

func NewFindStructureFunc(tp elastictransport.Interface) NewFindStructure

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

type Request added in v8.11.0

type Request = []json.RawMessage

Request holds the request body struct for the package findstructure

https://github.com/elastic/elasticsearch-specification/blob/5bf86339cd4bda77d07f6eaa6789b72f9c0279b1/specification/text_structure/find_structure/FindStructureRequest.ts#L24-L75

func NewRequest added in v8.13.1

func NewRequest() *Request

NewRequest returns a Request

type Response

type Response struct {
	Charset               string                     `json:"charset"`
	ColumnNames           []string                   `json:"column_names,omitempty"`
	Delimiter             *string                    `json:"delimiter,omitempty"`
	ExcludeLinesPattern   *string                    `json:"exclude_lines_pattern,omitempty"`
	Explanation           []string                   `json:"explanation,omitempty"`
	FieldStats            map[string]types.FieldStat `json:"field_stats"`
	Format                string                     `json:"format"`
	GrokPattern           *string                    `json:"grok_pattern,omitempty"`
	HasByteOrderMarker    bool                       `json:"has_byte_order_marker"`
	HasHeaderRow          *bool                      `json:"has_header_row,omitempty"`
	IngestPipeline        types.PipelineConfig       `json:"ingest_pipeline"`
	JavaTimestampFormats  []string                   `json:"java_timestamp_formats,omitempty"`
	JodaTimestampFormats  []string                   `json:"joda_timestamp_formats,omitempty"`
	Mappings              types.TypeMapping          `json:"mappings"`
	MultilineStartPattern *string                    `json:"multiline_start_pattern,omitempty"`
	NeedClientTimezone    bool                       `json:"need_client_timezone"`
	NumLinesAnalyzed      int                        `json:"num_lines_analyzed"`
	NumMessagesAnalyzed   int                        `json:"num_messages_analyzed"`
	Quote                 *string                    `json:"quote,omitempty"`
	SampleStart           string                     `json:"sample_start"`
	ShouldTrimFields      *bool                      `json:"should_trim_fields,omitempty"`
	TimestampField        *string                    `json:"timestamp_field,omitempty"`
}

Response holds the response body struct for the package findstructure

https://github.com/elastic/elasticsearch-specification/blob/5bf86339cd4bda77d07f6eaa6789b72f9c0279b1/specification/text_structure/find_structure/FindStructureResponse.ts#L27-L52

func NewResponse

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