У меня есть большая база данных MySQL. Одна таблица «Новости» содержит более 6 миллионов записей. Два столбца - текст на арабском языке. Я могу создать индекс для двух столбцов, используя:
mysql> CREATE FULLTEXT INDEX news_index ON news(news_title, news_text);
но индекс пуст, и я получаю следующую ошибку при попытке выполнить полнотекстовый поиск:
mysql> SELECT news_title FROM news WHERE MATCH(news_title) AGAINST('أردوغان');
ERROR 1191 (HY000): Can't find FULLTEXT index matching the column list
В базе данных использованы InnoDB и UTF-8. Кодировка столбца была utf8_unicode_ci, я подумал, что это может быть проблемой, поэтому я изменил два столбца на utf8_general_ci.
Когда я создал индекс, список индексов показывает:
+-------+------------+---------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+---------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| news | 0 | PRIMARY | 1 | news_id | A | 4293286 | NULL | NULL | | BTREE | | |
| news | 1 | fk_news_1_idx | 1 | news_country | A | 18 | NULL | NULL | | BTREE | | |
| news | 1 | news_index | 1 | news_title | NULL | 4293286 | NULL | NULL | YES | FULLTEXT | | |
| news | 1 | news_index | 2 | news_text | NULL | 4293286 | NULL | NULL | YES | FULLTEXT | | |
+-------+------------+---------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
Я также пытался создать индекс с помощью:
mysql> ALTER TABLE news ADD FULLTEXT(news_title, news_text);
Но опять же, не повезло. Я что-то упустил, когда я создаю индекс, он работает более часа, поэтому что-то происходит. Чего мне не хватает?