Spec-Zone .ru
спецификации, руководства, описания, API
|
MATCH
(
col1
,col2
,...) AGAINST (expr
[search_modifier
])
search_modifier:
{ IN NATURAL LANGUAGE MODE | IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION | IN BOOLEAN MODE | WITH QUERY EXPANSION }
У MySQL есть поддержка полнотекстовой индексации и поиска:
Полнотекстовое индексирует в MySQL, индексирование типа FULLTEXT
.
Полнотекстовый индексирует, может использоваться только с InnoDB
или MyISAM
таблицы, и могут быть составлены только для CHAR
, VARCHAR
, или TEXT
столбцы.
A FULLTEXT
индексируйте определение, может быть подан
CREATE TABLE
оператор, когда таблица составляется, или добавила более
позднее использование ALTER TABLE
или CREATE INDEX
.
Для больших наборов данных это намного быстрее, чтобы загрузить Ваши данные в
таблицу, которая имеет нет FULLTEXT
индексируйте и затем создайте
индексирование после этого, чем загрузить данные в таблицу, у которой есть существующее FULLTEXT
индексировать.
Полнотекстовый поиск выполняется, используя MATCH() ... AGAINST
синтаксис. MATCH()
берет список разделенных запятой значений, который называет столбцы,
которые будут искаться. AGAINST
берет строку, чтобы искать, и дополнительный
модификатор, который указывает какой поиск, чтобы выполнить. Строка поиска должна быть строковым значением,
которое является постоянным во время оценки запроса. Это исключает, например, столбец таблицы, потому что это
может отличаться для каждой строки.
Есть три типа полнотекстовых поисков:
Поиск естественного языка интерпретирует строку поиска как фразу на естественном
естественном языке (фраза в бесплатном тексте). Нет никаких специальных операторов. Список stopword
применяется, управляемый innodb_ft_enable_stopword
, innodb_ft_server_stopword_table
, и innodb_ft_user_stopword_table
для InnoDB
поиск индексирует, и ft_stopword_file
для MyISAM
.
Полнотекстовые поискы являются поисками естественного языка если IN NATURAL LANGUAGE MODE
модификатор дается или если никакой модификатор не
дается. Для получения дополнительной информации см. Раздел
12.9.1, "Естественный язык Полнотекстовые Поискы".
Булев поиск интерпретирует строку поиска, используя правила специального языка
запросов. Строка содержит слова, чтобы искать. Это может также содержать операторы, которые определяют
требования так, что, слово должно присутствовать или отсутствовать в соответствии строк, или что это
должно быть взвешено выше или ниже чем обычно. Определенные общие слова (stopwords) опускаются от
поиска, индексируют и не соответствуют если существующий в строке поиска. IN
BOOLEAN MODE
модификатор определяет булев поиск. Для получения дополнительной информации см.
Раздел
12.9.2, "Булевы Полнотекстовые Поискы".
Поиск расширения запроса является модификацией поиска естественного языка. Строка
поиска используется, чтобы выполнить поиск естественного языка. Затем слова от самых соответствующих
строк, возвращенных поиском, добавляются к строке поиска, и поиск делается снова. Запрос возвращает
строки из второго поиска. IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION
или
WITH QUERY EXPANSION
модификатор определяет поиск расширения запроса. Для
получения дополнительной информации см. Раздел
12.9.3, "Полнотекстовые Поискы с Расширением Запроса".
Для получения информации о FULLTEXT
производительность запроса, см. Раздел
8.3.4, "Столбец Индексирует".
Для большего количества технических деталей об обработке для InnoDB
FULLTEXT
индексирует, см. Раздел
14.2.3.13.3,"FULLTEXT
Индексирует".
Ограничения на полнотекстовый поиск перечисляются в Разделе 12.9.5, "Полнотекстовые Ограничения".
myisam_ftdump утилита выводит содержание a MyISAM
полнотекстовый индексируют. Это может быть полезно для того, чтобы отладить
полнотекстовые запросы. См. Раздел 4.6.2,
"myisam_ftdump — Полнотекстовый Дисплей Индексирует
информацию".