Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

One of the biggest challenges faced by facing big data solutions isn't how to collect and store large amounts of data, but rather how to quickly find the "needles in the haystack". To accelerate searches for very specific information, Devo uses a unique a unique two-level system for indexing data. 

...

This second index contains all tokens identified in the data saved across all data nodes.  An An internal indexing task runs regularly to scan the recently ingested events to identify all tokens and add them to this index. This is an inverted index, which means that every token is mapped to the individual events in which the token has been found.

...

Operation nameCase sensitivityDescription

Contains tokens (toktains)

Case-sensitive

This operation assumes that the string to search for is a token and therefore always uses the token index. It is a case-sensitive operation, however, so searching for Banana is not the same as searching for banana.

For example, toktains(message, "dev01")will return events where the message field contains dev01 as a token but not as just any substring. For example, it will return events that contain us.dev01.web or simply dev01, but not dev013 or xdev01. This is because, in the last two examples, dev01 is not a token.

However, if the optional left-extended and right-extended Boolean arguments are used, toktains will treat the search string differently. For example: 

toktains(message, "dev01", true, false)

will return events where a token ends with dev01. With the left-extended argument set to true, this tells the query engine that the search string is not a complete token and that it is preceded by additional alphanumeric characters.

Starts with (startswith)

Case-sensitive

This operation assumes that the string to search for is the beginning of a token and therefore always uses the token index. Like toktains, this operation is case-sensitive.

This returns events that contain containing tokens that start with the specified string.

Ends with (endswith)

Case-sensitive

This operation assumes that the string to search for is the end of a token and therefore always uses the token index. Like toktains, this operation is case-sensitive.

This returns events that contain containing tokens that end with the specified string.

Equal (eq, =)

Case-sensitive

Since these operations look for an exact match of the string to search for, they always use the token index. While eq is case-sensitive, eqic can be used when the search should ignore case.

These return events containing tokens that contain tokens exactly match the specified string (either regarding or disregarding case).

Equal - case insensitive (eqic)

Case-insensitive

...