Boolean expressions
The Splunk search processing language (SPL) supports the Boolean operators: AND
, OR
, and NOT
.
The operators must be capitalized.
The AND operator is always implied between terms, that is: web error
is the same as web AND error
. So unless you want to include it for clarity reasons, you should not need to specify the AND operator.
The NOT operator only applies to the term immediately following NOT. To apply to multiple terms, you must enclose the terms in parenthesis.
Inclusion is generally better than exclusion. Searching for "access denied" will yield faster results than NOT "access granted".
Order of evaluation
The order in which the Splunk software evaluates Boolean expressions depends on whether you are using the expression with the search
command or the where
command. This includes the implied search
command at the beginning of the search.
The following table describes the order in which the Boolean expressions are evaluated.
Order | Search command | Where command |
---|---|---|
1 | Expressions within parentheses | Expressions within parentheses |
2 | NOT clauses
|
NOT clauses
|
3 | OR clauses
|
AND clauses
|
4 | AND clauses
|
OR clauses
|
Examples
The following examples show how Splunk software processes Boolean expressions.
Consider the following search:
A=1 AND B=2 OR C=3
This is the same as specifying A=1 B=2 OR C=3
When you specify values without parenthesis, this search is processed as:
A=1 AND ( B=2 OR C=3 )
Here is another example:
error NOT 403 OR 404
Without parenthesis, this search is processed as:
- Search for any event that contains the string "error" and does not contain the keyword 403
- Search for any event that contains the string "error" and 404
You can use parentheses to group Boolean expressions. For example:
error NOT (403 OR 404)
(A=1 AND B=2 ) OR C=3
Use CASE() and TERM() to match phrases | Difference between != and NOT |
This documentation applies to the following versions of Splunk Cloud Platform™: 8.2.2112, 8.2.2201, 8.2.2202, 8.2.2203, 9.0.2205, 9.0.2208, 9.0.2209, 9.0.2303, 9.0.2305, 9.1.2308, 9.1.2312, 9.2.2403, 9.2.2406 (latest FedRAMP release), 9.3.2408
Feedback submitted, thanks!