I just did some tests using "Edit > Find > Search Messages" to search (I'm not sure what asutherland means by the "global search mechanism") and based on a few tests searching for "contains" matches on the body text here are my conclusions:
1) If you use quotes, it is looking for the quotes in the text, so I'm surprised you got any matches at all.
2) If you don't use quotes, it is still looking for an exact match (except that it's not case sensitive), so searching for "open house" without quotes should not match unless the words are adjacent to each other.
3) It doesn't seem to pay attention to token boundaries, so a search for "house" (without quotes) matches "warehouse"
So, it is a little unintuitive (and really should have a help button that explains exactly what it does), but it seems to work for me. I don't use IMAP, though, and the comments by qznc about IMAP [1] seem like they may explain why you are seeing what you are seeing if you use IMAP.
Edit: I just noticed e15ctr0n's link to info on the global search -- I don't have that enabled (probably disabled it to save disk space a long time ago) so if that's where you are seeing problems, that explains why I never noticed.
So for fun, I just sent myself an email with the subject "open house" and body "open house" (no quotes).
I then searched for "open house" (with quotes) and got a list back. Sorted by relevance, they return in the following chronological order: 2008, 2012, 2013x7, 2012x23, 2011x12, 2010x12 and on and on. Nothing from 2014 at all, and nothing from 2015 at all.
All of the returns have "open house" (or some variant) in them, quite a few have punctuation or non-alphanumeric characters right next to them, so that's cool. In quite a few "open houses" scores more highly than "open house".
So I filtered down to one mailbox. Now, I get a few from 2014, but no joy on my recent one.
I change the filter to another mailbox. About 10 down (there's only 12 "matching" in this mailbox) I see one of the relevant emails I was looking for earlier, but not the one I explicitly just sent myself.
If I remove all filter constraints and sort by date instead of relevance, the email I just sent shows up at the top, followed by some emails where "open houses" match my query, followed by the earlier email I was looking for.
So it's kinda working if I sort it by date. Sorting by relevance seems to be entirely useless. Sorting by mailbox is kinda useful, but doesn't seem to show most recent.
I dunno, it still seems faster and more accurate to hit each of my mailboxes separately from the web interfaces if I need to search them.
I think qznc might have hit the nail on the head about IMAP and getting weirdly out of sync.
1) If you use quotes, it is looking for the quotes in the text, so I'm surprised you got any matches at all.
2) If you don't use quotes, it is still looking for an exact match (except that it's not case sensitive), so searching for "open house" without quotes should not match unless the words are adjacent to each other.
3) It doesn't seem to pay attention to token boundaries, so a search for "house" (without quotes) matches "warehouse"
So, it is a little unintuitive (and really should have a help button that explains exactly what it does), but it seems to work for me. I don't use IMAP, though, and the comments by qznc about IMAP [1] seem like they may explain why you are seeing what you are seeing if you use IMAP.
[1] https://news.ycombinator.com/item?id=9124667
Edit: I just noticed e15ctr0n's link to info on the global search -- I don't have that enabled (probably disabled it to save disk space a long time ago) so if that's where you are seeing problems, that explains why I never noticed.