I am curious to know why you have chosen to use mysql or postgres full text search rather than using a product/library meant for full text search (like elasticsearch/solr/lucene)
I have no direct experience of using mysql or pgsql full text search and would be interested to know how that works once you have millions of messages in the database.