I’ve been using a MATCH.AGAINST query with SQL_CALC_FOUND_ROWS for a while now, but since that’s deprecated I’ve been looking into better options. From what I’ve found, it’s best to drop SQL_CALC_FOUND_ROWS and just run a separate COUNT(*) query for pagination. Also, switching to IN BOOLEAN MODE with FULLTEXT search fixes the issue with common words not showing up and gives more flexibility with things like +required, -excluded, and partial matches using *. It seems like that’s the cleanest way to handle search in MySQL today, unless you move up to something like Elasticsearch or Meilisearch for heavier search features!!