Search Operators in DEVONthink

In the toolbar search field, as well as in both the interactive and the simple web interface, you can use standard and extended Boolean operators, parenthesis, and more to fine tune your search.
The syntax of the operators is compatible to DEVONagent and EasyFind, the Finder, Spotlight, common search engines as well as common programming languages such as C, C++, Objective-C, Java, and JavaScript. The complexity of the query is unlimited.

Case

All terms are case-insensitive. You may, if you wish, use capitalisation for proper names in a query, but DEVONthink Pro Office will ignore case in interpreting the query.

Precedence of terms

Search terms and associated operators will be interpreted from left to right, except as modified by including portions of the query within parentheses.

Wildcards

You can replace parts of words with wildcards matching one, multiple, or a range of characters:
? Matches exactly one character.
*: Matches none, one, or multiple characters.
[a-b]: Matches one character of the range “a” through “b”.
[abc…] or [a|b|c|…]: Matches one character out of the given list of characters.
[^…]: Matches one character that is not contained in the given list or range.

Boolean operators

The operators (often called Boolean operators) are words or symbols that establish logical rules for the terms in the search query. If no operator is given, DEVONthink Pro Office infers AND. The available Boolean operators are:
  • term1 AND term2: Contains term1 AND term2
  • term1 BUT term2: Contains term1 AND term2
  • term1 OR term2: Contains term1 OR term2
  • term1 XOR term2: Contains term1 or term2, but not both
  • term1 EOR term2: Contains term1 or term2, but not both
  • NOT term: Does not contain term
  • “term1”: Contains the string of words term1, in exactly this form
Besides the classic Boolean operators, DEVONthink Pro Office uses a number of operators that usually are found in high-end databases. Use these operators as a replacement for AND and “quotes” to fine tune your query.
  • term1 OPT term2: term1 needs to occur, term2 can. If term2 does, the found document ranks higher in the search results.
  • term1 NEAR term2: term1 occurs 10 words or less before or after term2
  • term1 NEAR/n term2: term1 occurs n or less words before or after term2
  • term1 BEFORE term2: term1 occurs before term2
  • term1 BEFORE/n term2: term1 occurs n or less words before term2
  • term1 NEXT term2: term1 occurs right before term2 (shortcut for BEFORE/1)
  • term1 NEXT/n term2: term 1 occurs n or less words before term2 (synonym for BEFORE/n)
  • term1 AFTER term2: term1 occurs after term2
  • term1 AFTER/n term2: term1 occurs n or less words after term2
  • ~term1: Contains term1, also as part of a word
For convenience, some of these operators can also be abbreviated using commonly used symbols:
AND: &, &&, +
OR: |, ||
XOR: ^, ^^
NOT: !, -
Note: The symbols above are also used by the Finder and Spotlight for searches. Enter the vertical ruler character for the OR operator by pressing ⌥7 (e.g. on European keyboards).
Operators are evaluated in the following priority: parenthesis > phrase/hyphens > (NOT) BEFORE/AFTER/NEAR/NEXT > NOT > AND/OR/XOR/EOR. Terms with same priority but without parenthesis are evaluated from left to right.

Date comparison operators

For comparing dates in smart groups the following operators are available:
< date: Matches items that were created/edited/viewed before date.
<= date: Matches items that were created/edited/viewed before or on date.
= date: Matches items that were created/edited/viewed after or on date.
date: Matches items that were created/edited/viewed after date.

White space handling