clp-text search syntax#
To search unstructured text logs, CLP currently supports wildcard queries. A wildcard query is one where:
- *matches zero or more characters
- ?matches any single character
To search for a wildcard literally, you can escape it using a backslash (\). To search for a
backslash literally, you can escape it with another backslash.
By default, CLP treats queries as substring searches (alike grep). So the query
container * failed is interpreted internally as *container * failed* (with prefix and suffix
*).
Tip
Queries where words[1] contain or are attached to wildcards are generally slower than queries where the words are separate from any wildcards.
For example, the query ERROR c*4 FAILED! (interpreted internally as *ERROR c*4 FAILED!*) will
likely take longer to execute than the query  ERROR container_4 FAILED! (assuming they match
the same log events). In the former, ERROR has an implicit preceding wildcard, c*4 contains a
wildcard, and FAILED does not (! is a delimiter by default). In the latter, all three words are
detached from any wildcards.
Quoting in the UI#
When searching from the UI, you may quote your query with double quotes ("). To search for a
double quote character literally, you can escape it using a backslash (\). To search for a
backslash literally, you can escape it with another backslash.
Note
Escaped wildcards within a quoted query string don’t need to be escaped again.
Examples#
Search for log events for failed containers:
container * failed
Note that a wildcard query is a substring search, so all non-wildcard characters (like spaces) are matched literally.
Search for log events for containing a 3-digit number that starts and ends with 3:
 3?3 
Note that because the query is surrounded by spaces, it will be interpreted internally as
* 3?3 *.
Search for the literal substring formula: \x * \y (which requires escapes):
 formula: \\x \* \\y
