SQL MATCH
SQL MATCH используется в полнотекстовом поиске, который позволяет выполнить сложные поисковые запросы в текстовых данных.
Синтаксис
MATCH (column1,column2,...) AGAINST (string [search_modifier])
В этом синтаксисе:
MATCH
: оператор, который выполняет полнотекстовый поиск.(column1,column2,...)
: список столбцов, которые используются для полнотекстового поиска.AGAINST
: ключевое слово, которое используется для определения строки поиска.string
: строка поиска.search_modifier
: модификатор поиска, который определяет тип поиска, такой какIN NATURAL LANGUAGE MODE
,IN BOOLEAN MODE
и т.д.
Примеры
Пример 1: Полнотекстовый поиск в режиме естественного языка
SELECT
column1, column2
FROM
table
WHERE
MATCH (column1,column2) AGAINST ('string');
Пример 2: Полнотекстовый поиск в булевом режиме
SELECT
column1, column2
FROM
table
WHERE
MATCH (column1,column2) AGAINST ('+string1 -string2' IN BOOLEAN MODE);
В этом примере +
означает, что string1
должна присутствовать, а -
означает, что string2
не должна присутствовать.
Примечания
- Полнотекстовый поиск может быть медленным в больших таблицах.
- Для использования полнотекстового поиска, столбцы должны быть индексированы с использованием FULLTEXT индекса.
- Полнотекстовый поиск не учитывает слова, которые состоят менее чем из 4 символов, а также слова, которые встречаются более чем в 50% записей (для MySQL).