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.