- The most basic element is a condition: fieldname=value. That means, if a field has the given value, the entry will be processed. Whitespace is ignored, so you can also write fieldname = value. And if you do want white space in a value, enclose it in quotes like so: fieldname="current value"
- If you want to check more than one value, you can combine conditions with the logic operators "AND" "OR" "NOT": status=ok AND NOT domain=finance. The operators are evaluated in a certain order: AND is applied before OR. Btw, they are case insensitive, you could just as well write status=ok and not domain=finance
- if your condition gets complex, you may have to use parentheses, especially when a mix of AND and OR operators are used: status=forbidden AND (domain=legal OR domain=government)
Matching different Entry levels
The conditions above just mention a field name, but how do you know if it is for a entry level field, or a term level field, or even the term text? You do it by using this syntax:
- Entry level field: field=value, where "field" stands for any valid field name
- Index level field: French.field=value, where "French" stands for any valid language name
- Term level field: French.Term.field=value, where "Term" is a fixed value, not the content of any term
- Content of a term: French.Term=value, if you have more than one term in an entry, it means "any term in the entry"
- Term level field in any language: there is no keyword for this, but you can get the result by combining all languages:
French.Term.field=value OR English.Term.field=value OR Spanish.Term.field=value
You can filter a field value by using one of 4 condition operators:
- = means equal, and is case insensitive
- == means equal, and is case sensitive
- != means different, and is case insensitive
- !== means different, and is case sensitive
In addition to the comparisons above, you can check if a field is present at all, regardless of the value. You do this by comparing to one of two special values:
- *any*: field=*any* means that the (entry level) field is defined at all
- *none*: field=*none* means that the field is not present. This is equivalent to !=*any*, but looks a bit nicer.
So far, we only looked at comparisons to a string, but you can also use regular expressions to look for a pattern. If you don't know what they are, you just can use the two most common ones, equivalent to wildcard characters:
- any number of characters: field=.*bank matches "Deutsche Bank", "MyBank" or "bank", but not "bank holiday"
- one character: field=My..bank matches "myEUbank" and "myusBank", but not "mybank"
Note that the pattern must match the whole string, it is not a "contains" operation. if you want to check for terms containing the word "bank" anywhere, use .*bank.*
Created with the Personal Edition of HelpNDoc: Easily create HTML Help documents