Конкретное слово только с CONTAINS, FREETEXT? - PullRequest
0 голосов
/ 24 февраля 2011

Как мне искать определенное слово только в полнотекстовых индексированных полях?

Я знаю, что мог бы просто сделать "где поле =" слово "", но я бы предпочел, чтобы форма поиска была как можно более универсальной, и передавал бы поисковый термин функциям CONTAINS, FREETEXT.

Кажется, должна быть граница слова или символ конца фразы, который можно использовать, но, похоже, его нет.

Я использую MS SQL Server 2005.

1 Ответ

0 голосов
/ 24 февраля 2011

Чтобы использовать Contains или FreeText, у вас должен быть полнотекстовый индекс для рассматриваемых столбцов.Предполагая, что вы это сделаете, вы можете форсировать поиск определенного слова, заключив в двойные кавычки:

Select ..
From Table
Where Contains( SomeCol, '"word"')

СОДЕРЖИТ (Transact-SQL)

Обновление

Если вам нужно вернуть результаты, в которых содержится только содержимое и точно ваш поисковый запрос, то единственный способ сделать это - использовать = или Like без подстановочного знака,Т.е. нет возможности искать точное совпадение всего содержимого с использованием предикатов полнотекстового поиска.Таким образом, вы должны использовать:

Select ..
From Table
Where SomeCol = 'word'

Select ..
From Table
Where SomeCol Like 'word'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...