Skip to main content

Filtering Data

In FlowG, every log record is a flat record where every field is a string. Every field in a stream is indexed, allowing fast retrieval of log records matching some filter.

Said filter are written using a very small DSL.

Syntax

ExampleDescription
field = "value"Matches all records where field is strictly equal to value
field != "value"Matches all records where field is not equal to value
field in ["a", "b"]Matches all records where field is either a or b
field not in ["a", "b"]Matches all records where field is neither a or b

Filters can be combined in more complex filters using the boolean operators not, and, or:

ExampleDescription
field1 = "a" or field2 = "b"Matches all records where either field1 equals a or field2 equals b
field1 = "a" and field2 = "b"Matches all records where both field1 equals a and field2 equals b
not (field1 = "a" or field2 = "b")Matches all records where neither field1 equals a and field2 equals b