Spec-Zone.ru › MySQL 9.2

14.9.5 Ограничения полнотекстового поиска

  • Полнотекстовый поиск поддерживается только для таблиц InnoDB и MyISAM.

  • Полнотекстовый поиск не поддерживается для разделяемых таблиц. См. Раздел 26.6, «Ограничения и пределы разбиения».

  • Полнотекстовый поиск может использоваться с большинством многобайтовых наборов символов. Исключением являются наборы символов Unicode, для которых можно использовать utf8mb3 или utf8mb4, но не ucs2. Хотя индексы FULLTEXT по столбцам ucs2 использовать нельзя, вы можете выполнять полнотекстовые запросы по столбцу ucs2, не имеющему такого индекса.

    Примечания к utf8mb3 также относятся к utf8mb4, а замечания к ucs2 также относятся к utf16, utf16le и utf32.

  • Идеографические языки, такие как китайский и японский, не имеют разделителей слов. Поэтому встроенный полнотекстовый анализатор не может определить, где в этих и других подобных языках начинаются и заканчиваются слова.

    Для использования с таблицами InnoDB и MyISAM предоставляется полнотекстовый анализатор n-грамм на основе символов, поддерживающий китайский, японский и корейский (CJK), а также плагин анализатора MeCab на основе слов, поддерживающий японский.

  • Хотя использование нескольких наборов символов в одной таблице поддерживается, все столбцы в индексе FULLTEXT должны использовать один и тот же набор символов и сортировку.

  • Список столбцов в MATCH() должен точно соответствовать списку столбцов в определении индекса FULLTEXT для таблицы, если этот MATCH() не применяется к MyISAM таблице. Для MyISAM таблиц поиски в булевом режиме могут выполняться по неиндексированным столбцам, хотя они, вероятно, будут медленными.

  • Аргумент для AGAINST() должен быть строковым значением, постоянным во время оценки запроса. Это исключает, например, столбец таблицы, так как он может отличаться для каждой строки.

    Аргумент для MATCH() не может использовать агрегирующий столбец.

  • Подсказки индекса ограничены для полнотекстовых запросов по сравнению с обычными запросами. См. Раздел 10.9.4, «Подсказки индекса».

  • Для InnoDB все операции DML (INSERT, UPDATE, DELETE), затрагивающие столбцы с полнотекстовыми индексами, обрабатываются во время фиксации транзакции. Например, для операции INSERT вставленная строка разлагается на отдельные слова. Отдельные слова добавляются в таблицы полнотекстового индекса при фиксации транзакции. В результате полнотекстовые поиски возвращают только данные, подтверждённые транзакцией.

  • Символ '%' не поддерживается в качестве символа подстановки для полнотекстовых запросов.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/fulltext-restrictions.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API