Предполагая, что все различные типы объявлений имеют одинаковую структуру, я бы сделал следующее:
Сохраните текст в одной таблице вместе с другим полем для категории (и другими полями для любой другой информации, связанной с категорией).
В Solr создайте индекс, содержащий текстовое поле, поле категории и поле PK. Поля текста и категории будут проиндексированы, но не сохранены, а поле PK (где хранится первичный ключ, соответствующий вашей таблице MySQL) будет сохранено, но не проиндексировано.
Разрешить пользователю выполнять два вида поиска: один с просто текстом, а другой с текстом и категорией. Для последнего категория должна быть точным совпадением. Поиск Solr вернет список PK, который позволит вам затем получать документы из MySQL.
Вы не увидите значительного улучшения производительности, разбив свой индекс на 30 индексов, потому что Solr / Lucene уже очень эффективно находит данные по инвертированным индексам. Достаточно указать название категории.