I have a local maildir[1] account in Evolution. Each of my (IMAP) mail accounts is set so the "archive" command moves the message to a folder under the maildir account (if you're using Evolution, this can be configured under "Defaults" in the account properties for each IMAP account). Anything worth keeping from any of my IMAP mail accounts is archived to the local maildir, everything else is deleted.
The local maildir account is searchable like any other mailbox (I have about 10,000 messages going back to 2003). Syncthing[2] is configured to sync the maildir directory for backup and sync.
I keep everything remote, so that every client gets the whole corpus. For now, that means that indexing is done with notmuch whose command line I use for search... Not as good as a webmail's UI but it puts search results as a maildir so I can open them from any IMAP client as a special folder.
Thunderbird has "local" accounts, you can move emails there and have them removed from your imap server. You can also export emails to .eml files, throw them wherever you like and grep for contents if you like.
3 Gb is plenty for a few months of "live" email but after that what should we do to keep those emails -- and still have them searchable if need be?