Ошибка 1191 (HY000) говорит о том, что MySQL не может найти FULLTEXT индекс, который бы подходил под список столбцов, используемых в операторе MATCH AGAINST. В вашем случае, указан только один столбец `keywords`, который должен быть проиндексирован FULLTEXT индексом.
Чтобы исправить эту ошибку, выполните следующие шаги:
1. Убедитесь, что таблица `activities` использует движок хранения (storage engine), который поддерживает FULLTEXT индексы. FULLTEXT индексы поддерживаются InnoDB (начиная с MySQL 5.6) и MyISAM.
2. Создайте FULLTEXT индекс для столбца `keywords`, если его еще нет:
```sql
ALTER TABLE activities ADD FULLTEXT (keywords);
```
3. Убедитесь, что ваш запрос использует именно те столбцы, для которых был создан индекс. Если вы создали FULLTEXT индекс только для столбца `keywords`, то в вашем запросе должен быть только этот столбец.
Пример правильного запроса:
```sql
SELECT *, MATCH(keywords) AGAINST (?) as relev
FROM activities
WHERE MATCH(keywords) AGAINST (?) > 0 AND town = ?
ORDER BY relev DESC
LIMIT 15;
```
Где `?` обозначает плейсхолдер для значения, с которым вы хотите сравнивать содержимое столбца `keywords`.
Если после создания FULLTEXT индекса ошибка все еще возникает, возможно, индекс не был создан успешно, или MySQL Workbench не обновил схему таблицы в своем кэше. Проверьте наличие индекса следующим запросом:
```sql
SHOW INDEX FROM activities;
```
Ищите индекс с типом `FULLTEXT` для столбца `keywords`. Если такого индекса нет, попробуйте снова выполнить предыдущую команду для добавления индекса.
Если индекс существует и запрос по-прежнему возвращает ошибку, возможно, есть проблема с кэшем MySQL Workbench. Попробуйте обновить схему или закрыть и открыть Workbench заново.
Помните также, что при использовании InnoDB таблицы FULLTEXT индексы будут обновляться по мере изменения таблицы, в то время как для MyISAM таблиц (дефолтное поведение до версии MySQL 5.6) FULLTEXT индексы могут требовать периодического обновления с помощью команды `REPAIR TABLE`.