Spec-Zone.ru › MySQL 5.7

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

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

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

  • Полнотекстовый поиск можно использовать со многими многобайтовыми наборами символов. Исключение составляет Unicode, для которого допустим набор символов utf8, но не ucs2. Хотя индексы FULLTEXT по столбцам ucs2 использовать нельзя, можно выполнить поиск IN BOOLEAN MODE по столбцу ucs2, у которого такого индекса нет.

    Примечания для utf8 также относятся к utf8mb4, а примечания для ucs2 также относятся к utf16, utf16le и utf32.

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

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

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

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

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

  • Указатели индексов ограничены для поисков FULLTEXT по сравнению с поисками, не связанными с FULLTEXT. См. Раздел 8.9.4, «Указания индексов».

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

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

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

Spec-Zone.ru

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