Unable to search for text wrapped in %

@prashant was expecting the query ICU (without %) to return a result beginning with %ICU. Partial matches shouldn’t make a difference here, no? Since that only assumes a * wildcard at the end of the search term… Like you suggest, it’s necessary to adjust the query. (Can be missed if reading too fast)


When you search, DEVONthink doesn’t go through each file individually. To keep search performant, DEVONthink extracts (indexes) information from your database items to a so called “search index”—under the hood, in the internals of the application—and searches that. This is common; Spotlight and Google does the same.

Not all special characters are indexed. You can’t search for those that aren’t. (The manual lists the symbols ‌$€£¥%§ as indexed on p. 88, Windows > Main Window > Search Pane)

If % was not indexed, the query ICU* would return %ICU… because the search would be “blind” to the % and just see ICU in the search index. Since % is indexed, it’s considered the first character in the word.

Maybe a different example makes it clearer. Would you expect a search with just the query ight to return…

  • Eight
  • Fight
  • Light
  • Might
  • Night
  • Right
  • Sight
  • Tight

…?
It doesn’t.

As you found out, you can use wildcards. ?ight, ~ight and *ight would return all of the above. Here the only difference is the first letter. If we drop the last letter from the query (and disable Partial matches while typing) we get different results. ~igh returns the same as before, the others don’t. You’d need to add a wildcard at the end too: ?igh* or *igh*

It might be useful to look at the examples in the manual under Appendix > Search operators > Wildcards.

Note: some characters are indexed, but normally interpreted as search operators – for example ?. To include them in search terms, the term must be enclosed in quotation marks: "…?"

2 Likes