Customers want to use the Advanced Search Query window in AAI to filter jobs using free-form expressions but are unsure which operators are supported, how to write correct patterns, and why certain queries (such as those using the equals sign) produce a "not a valid criteria" error.
Note: When Enable Edit is checked, the Name and Status filter controls are disabled. Unchecking it returns to GUI controls if the current query is a simple AND expression.
Every query follows the form: field operator value
JOB_NAME, COMMAND, MACHINE).'PROD_DAILY'). Unquoted values and null are not supported.Using the wrong operator for a field type produces the error: "is not a valid criteria."
1. String Fields (e.g., JOB_NAME, JOB_TYPE, OWNER, MACHINE)
contains / not containsstartsWith / not startsWithendsWith / not endsWithmatches / not matches: Matches a Java regular expression pattern (full-string match).exists / not exists: Checks if the field has a value.2. Numeric Fields (e.g., PRIORITY)
= (equals)!= (not equals)Important: The equals sign (=) is not valid for String fields. For exact matching on String fields, use the matches operator without wildcards (e.g., JOB_TYPE matches 'CMD').
All string comparisons, including matches, are case-insensitive. This behavior is enforced at the server level and cannot be changed.
The matches operator requires the pattern to cover the entire field value.
.* to match any sequence of characters (e.g., JOB_NAME matches 'PROD_.*').JOB_NAME matches '(PROD|STAGING)_.*').*) is NOT a glob wildcard. In Java regex, it means zero or more repetitions of the preceding character. Always use .* for a sequence wildcard.Use and (or &), or (or |), and not to combine clauses. Use parentheses to control evaluation order.
JOB_NAME startsWith 'PROD_' and JOB_TYPE matches 'CMD'