Building blocks

  • 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


Comparison types

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


Special keywords

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.


Regular expressions

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