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