Оператор MATCH
Оператор MATCH создает свойство, реализующее полнотекстовый поиск. Для сравнения строки с шаблоном используется отдельный оператор LIKE.
Синтаксис
searchExpr MATCH compareExpr
Описание
Оператор MATCH сравнивает searchExpr с поисковой строкой или подготовленным поисковым запросом. Символы % и _ в compareExpr не являются масками.
- Если оба операнда
MATCHпринадлежат строковым классам, платформа преобразует их с учетом текущего языка полнотекстового поиска и возвращаетTRUE, если срабатывает либо полнотекстовое условие, либо регистронезависимая проверка вхождения подстроки. - Подготовленные значения полнотекстового поиска поддерживаются только в стандартных ролях:
TSVECTORвsearchExprиTSQUERYвcompareExpr. В этих ролях платформа использует подготовленное значение напрямую и преобразует только строковый операнд, если он есть; дополнительная проверка на вхождение подстроки при этом не выполняется. - Значения типов
TSVECTORиTSQUERYобычно получают функциямиtoTsVectorиtoTsQuery.
Параметры
-
searchExprВыражение, значение которого определяет исходную строку или подготовленный поисковый вектор.
Значение выражения должно принадлежать одному из строковых классов или иметь тип
TSVECTOR. -
compareExprВыражение, значение которого определяет поисковую строку или подготовленный поисковый запрос.
Значение выражения должно принадлежать одному из строковых классов или иметь тип
TSQUERY.
Примеры
matchesByWords(STRING content, STRING query) = content MATCH query; // полнотекстовый поиск по строке
matchesPrepared(STRING content, TSQUERY query) = content MATCH query; // справа используется подготовленный TSQUERY
matchesVectorByString(TSVECTOR vector, STRING query) = vector MATCH query; // справа строка преобразуется в TSQUERY
matchesVector(TSVECTOR vector, TSQUERY query) = vector MATCH query; // прямое сопоставление TSVECTOR и TSQUERY