Keyword search fails on email in a specific and frustrating way: you remember the situation perfectly and the wording not at all.
Queries are mostly about relationships and time
We looked at what people typed into search when keyword matching returned nothing useful. The overwhelming majority described a person, a rough time window, and a kind of thing. Almost none described the actual text of the message.
So the index is built around those three axes first, and the body text second.
Resolving "before the offsite"
Time expressions get resolved against your own calendar, not a generic parser. "Before the offsite" is meaningless in the abstract and precise if you know there was an event by that name in March.
That resolution happens locally, because it needs your calendar, and shipping your calendar somewhere to answer a search query is not a trade we are willing to make.
Ranking by obligation
Two messages can match equally well. The one you never replied to is almost always the one you meant. Unanswered threads, threads where you made a commitment, and threads with an attachment you opened all get a ranking boost.
It sounds like a hack. It is a hack. It also moved the top-result hit rate more than any embedding change we tried that quarter.

