Advanced Evernote search
It isn't immediately obvious, but Evernote offers advanced search operators.
Basic Evernote search
Evernote search is quite quirky. It is an 'all' search by default, and the order of the search operators matters.
- Searching for word will match any occurrences of word, obviously, but also those starting with word (e.g. 'wordpress'). In other words, think of it as the equivalent to word*. Note that this is not what it says in the Evernote API documentation, where it states "Words in the content of the note are split by whitespace or punctuation". This is unfortunate, because sometimes you only want the exact match, but luckily you can use quotation marks in that case.
- Wildcards are allowed only at the end, and in theory `potato*` should match both 'potatoes' and 'potato' whereas `potato` should only match the singular. But in the Evernote app at least, the wildcard seems to be implied so this is redundant.
- strange word
- By default searches only returns notes that match all words, regardless of the order. `strange word` will match notes containing "this word is strange", "this is a strange word", and "Strange! [...15 pars later...] my word"
- "strange word" "word"
- Quotation marks limit the search to an exact match, so this will only match "this is a strange word" in the previous example. You can also use quotation marks to remove the implied wildcard - `word` will also match wordpress and wording, but `"word"` (with the double quotes) will not.
- matches notes that do not contain words starting with "word"
Advanced search options: tag and intitle
They normally take the form option:value. Note that in these cases, the wildcards works - i.e., option:value is different from option:value*. The former means "any note where [option] is exactly [value]", whereas the latter means "any note where [option] starts with [value]".
nb:notebook Only search notes assigned to notebook. This has to be the first search option.
this seems to have been removed in later versions
- match notes with any of the search terms instead of all. This has to be the first search option, or second if nb: is used.
- will match notes with tag theTag. Note that wildcards do work for tags, so this will match only theTag, not theTags
- use wildcards for looser matches. Note that you can only put them at the end of a word.
- any tagged note
- match notes that don't have tags starting with theTag.
- a title search. Exact matches only
- title search using wildcards.
- intitle:strange intitle:word
- Matches all words, in any order, within the title.
- intitle:"strange word"
- exact match of sequence "strange word". The algorithm seems a bit buggy - a note with title "this is a strange word" will be matched by `intitle:"strange word"`, `intitle:"strange a word"`, `intitle:"strange that word"` but not `intitle:"strange b word"` or `intitle:"word strange"`
- Excludes notes with "word" in the title.
- intitle:strange -intitle:word
- all notes with the word "strange" but not "word" in the title
- Notes with author equal to 'name'. Notes don't have authors unless you create one yourself.
Search evernote by date
Evernote has some useful date searches capabilities. A date match means 'since that date (and time)". If you want to have a range of dates instead of just a starting point, use two dates, a positive one for the start and a negative one for the end - e.g.
created:2009 -created:2011 for dates between 2009 and 2010.
Dates use either the ISO 8601 format or relative date format. ISO 8601 is either yyyyMMdd for dates or yyyyMMddTHHmmss for date times. The T is the actual capital 'T' to separate date and time, and the other letter stand for y=year, M=month etc.
The relative format is easier; the word "day" stands for midnight of current day; "week" = midnight of the closest sunday, in the past, to current day; "month" = midnight of 1st of current month; "year" = midnight of 1st of January of current year. You can also subtract an integer to refer to dates further back, e.g. day-2.
- matches notes created since last midnight
- matches notes updated since midnight yesterday
- created:week-2 -created:week
- matches notes created last week (but not this week, because of the -created:week)
- matches notes updated since the 11th of April 2011
- created:20110411T191500 -created:20110411T1202500
- matches notes created between 19:15 and 20:25 of 11th of April 2011
More advanced search options
There are even more parameters some of which I had to dig out from the Thrift API files.
Resources match notes which include at least one of the MIME types you list. Using MIME types is good news, because you can, say, use resource:image/gif for matchin gif files, or resource:image/* for matching any image. Note: here's the official list of MIME types.
- Match notes with audio files embedded in them.
- Match notes with pdf files
- resource:image/* -resource:image/gif
- Match notes with images which are not gifs
The URL the note comes from. Note that you need to include the http:// as well if using wildcards. This is not as useful as it may seem, because wildcards only work at the end of the string, so you need to write out all possible variations of a url to be sure:
- sourceurl:http://www.bbc* sourceurl:http://news.bbc* sourceurl:http://bbc*
- Match notes from BBC websites, including news
When you add a note, Evernote creates a 'source' attribute to keep track of where the note comes from - unless it was created from within Evernote itself.
- Matches notes created with the MS Word plugin
- Matches notes created with any Microsoft plugin
- Matches notes which were created by sending an email to your evernote account
- Notes created with one of the browser plugins
- Notes created with the mobile app
- Notes created within the Evernote app (i.e., with no source attribute)
Those are the useful Evernote search attributes.
There are other, like latitude and longitude, but they are more useful for software connecting to the API.