A search operator specifies how the comparison of a search value and a zettel should be executed. Every comparison is done case-insensitive, treating all uppercase letters the same as lowercase letters.
The following are allowed search operator characters:
- The exclamation mark character (“!”, U+0021) negates the meaning.
- The equal sign character (“=”, U+003D) compares on equal content (“equals operator”).
- The tilde character (“~”, U+007E) compares on matching (“match operator”).
- The left square bracket character (“[”, U+005B) matches if there is some prefix (“prefix operator”).
- The right square bracket character (“]”, U+005D) compares a suffix relationship (“suffix operator”).
- The colon character (“:”, U+003A) compares depending on the on the actual key type (“has operator”). In most cases, it acts as a equals operator, but for some type it acts as the match operator.
- The less-than sign character (“<”, U+003C) matches if the search value is somehow less then the metadata value (“less operator”).
- The greater-than sign character (“>”, U+003E) matches if the search value is somehow greater then the metadata value (“greater operator”).
- The question mark (“?”, U+003F) checks for an existing metadata key (“exist operator”). In this case no search value must be given.
Since the exclamation mark character can be combined with the other, there are 18 possible combinations:
- “!”: is an abbreviation of the “!~” operator.
- “~”: is successful if the search value matched the value to be compared.
- “!~”: is successful if the search value does not match the value to be compared.
- “=”: is successful if the search value is equal to one word of the value to be compared.
- “!=”: is successful if the search value is not equal to any word of the value to be compared.
- “[”: is successful if the search value is a prefix of the value to be compared.
- “![”: is successful if the search value is not a prefix of the value to be compared.
- “]”: is successful if the search value is a suffix of the value to be compared.
- “!]”: is successful if the search value is not a suffix of the value to be compared.
- “:”: is successful if the search value is has/match one word of the value to be compared.
- “!:”: is successful if the search value is not match/has to any word of the value to be compared.
- “<”: is successful if the search value is less than the value to be compared.
- “!<”: is successful if the search value is not less than, e.g. greater or equal than the value to be compared.
- “>”: is successful if the search value is greater than the value to be compared.
- “!>”: is successful if the search value is not greater than, e.g. less or equal than the value to be compared.
- “?”: is successful if the metadata contains the given key.
- “!?”: is successful if the metadata does not contain the given key.
- “”: a missing search operator can only occur for a full-text search. It is equal to the “~” operator.