I don't know; my ~/code directory has tons of stuff and searching with ripgrep doesn't seem too slow:
% time rg HelloWorld | wc -l
4
rg HelloWorld > /dev/null 0.13s user 0.12s system 99% cpu 0.251 total
% time rg string | wc -l
57813
rg string > /dev/null 0.20s user 0.14s system 99% cpu 0.339 total
Rough estimate of files that rg will search: % scc
───────────────────────────────────────────────────────────────────────────────
Language Files Lines Blanks Comments Code
…
Total 11024 1864982 175565 208777 1480640
───────────────────────────────────────────────────────────────────────────────
Finding close to 60k matches in 11k files/1.7M lines in about 0.3 seconds isn't too bad.It should be said I ran a few commands on that directory before the above results, so there's probably some filesystem caching going on, but I can't be bothered to reboot.
For many (not all, obviously) cases I think you may be able to get away without a index. Most people aren't subscribed to tons of email lists and get maybe a few emails a day at the most.
I'd consider anything below ~3 seconds to be fine for search, so this scales to about 100k files/emails. At 10 emails/day on average that's about a decade. Most people do not get 10 emails/day on average.
And you can even do some "poor man indexing" by just making a new directory every five or ten years. Most of the time you want just emails from the last year or so.