We’ve just rolled out a significant improvement to our search infrastructure.

Until now, searching for email in FastMail has been slow and idiosyncratic. Searching for words entered into the search box would only search the To/Cc/From/Subject headers of messages in the current folder. It wouldn’t search the message body content or across multiple folders. While there were options that made both of these possible, they were incredibly slow, making finding the messages you wanted frustrating.

Now though, when you enter words in the search box, we search the To/Cc/From/Subject headers as well as the entire message body content, and we do it across all messages in all folders. Additionally, when searching for a word, we’ll show a snippet of the message content with the search term(s) highlighted in the preview area. We’ll also search for multiple different forms of the word e.g. searching for “condition” will find condition, conditions, conditional, conditionally, etc.

Most importantly, by making sure all this data is indexed, the searches are very fast, even with a million messages across dozens of folders. In most cases, it should only take a few seconds to search all your email and we have plans in progress that should speed this up even more over the coming months.

We’ve also built an easy to access advanced search builder. When you click in the search box, an auto-complete popup will appear as you type. The final item in the pop-up is an “Advanced search” option. Clicking on this will show an overlay that lets you construct an advanced search without having to leave the screen.

If you find yourself repeating the same search frequently, you can save it by clicking the “Save” button next to the search in the sidebar. The search will appear with your list of folders. Keyboard power users can quickly select the search using the “g” shortcut folder finder, just like a normal folder.

Note: The new search currently only works with the new (AJAX) interface. If you’re using the “classic” interface or the mobile interface, you’ll get the old search system for now. We hope to fix this in the future. Also if you want the old search behaviour (including sub-string matching), use the substr:(sometext) operator as described on the help page.