Skip to content

Conversation

@jakelandis
Copy link
Contributor

Backport to 6.x (to run CI).

The dissect library will be used for the ingest node as an alternative
to Grok to split a string based on a pattern. Dissect differs from
Grok such that regular expressions are not used to split the string.
Note - Regular expressions are used during construction of the
objects, but not in the hot path.

A dissect pattern takes the form of: '%{a} %{b},%{c}' which is
composed of 3 keys (a,b,c) and two delimiters (space and comma).
This dissect pattern will match a string of the form: 'foo bar,baz'
and will result a key/value pairing of 'a=foo, b=bar, and c=baz'.
See the comments in DissectParser for a full explanation.

This commit does not include the ingest node processor that will consume
it. However, the consumption should be a trivial mapping between the
key/value pairing returned by the parser and the key/value pairing
needed for the IngestDocument.
The ingest node dissect processor is an alternative to Grok
to split a string based on a pattern. Dissect differs from
Grok such that regular expressions are not used to split the
string.

Dissect can be used to parse a source text field with a
simpler pattern, and is often faster the Grok for basic string
parsing. This processor uses the dissect library which
does most of the work.
This change also includes placing the bytes processor in the correct
order (helps to avoid merge conflict when back patching processors)
@jakelandis jakelandis changed the title Dissect proc lib 6x ingest: Dissect processor and lib for 6x Sep 5, 2018
@jakelandis
Copy link
Contributor Author

CI is green. Very minor changes to make compatible with 6.x.

Backports for #32297 #32884 #33211

merging ...

@jakelandis jakelandis merged commit 0ed19dc into elastic:6.x Sep 5, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants