Поделиться через


Использование подстановочных знаков в предикате CONTAINS

Предикат CONTAINS поддерживает использование звездочки (*) в качестве подстановочного знака для представления слов и фраз. Можно добавить звёздочку только в конце слова или фразы. Наличие звездочки включает режим сопоставления префиксов . В этом режиме совпадения возвращаются, если столбец содержит указанное слово поиска, за которым следует ноль или более других символов.

Если указана фраза, каждое слово, содержащееся в фразе, считается отдельным префиксом. Таким образом, запрос, указывающий префикс термина "местное вино*", соответствует любым строкам с текстом "местная винодельня", "местные угощения за вином" и т. д.

Примеры

Сопоставление слов

Этот пример соответствует документам, имеющим любое слово в столбце FileName, начиная с "serv".

...WHERE CONTAINS(System.FileName, '"serv*"')

Примеры соответствующих слов включают "сервер", "сервера" и "сервис".

Сопоставление фраз

Этот пример соответствует документам с любой фразой в столбце FileName, начинающимся с "comp" и в котором следующее слово начинается с "serv".

...WHERE CONTAINS(System.FileName, '"comp serv*"')

Примеры совпадающих фраз включают "comp server", "компьютерные серверы" и "сервис конкурентов".

Сопоставление с суффиксом (не поддерживается)

Звездочка используется только для сопоставления префиксов и может размещаться только в конце слова или фразы; она не работает для сопоставления суффиксов. Следующий синтаксис недопустим и не соответствует документам, в столбце FileName которых любое слово заканчивается на "serve".

-- DO NOT USE.
WHERE CONTAINS(System.FileName, '"*serve"')

Справочник

предикат FREETEXT

условие WHERE