Перейти к основному содержимому
Версия: 7.0

Оператор 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