SQL-полнотекстовый поиск не возвращает результатов, если в строке поиска есть шумовые слова - PullRequest
4 голосов
/ 25 июня 2010

У меня есть веб-страница asp.net, используемая для поиска названий компаний в нашей базе данных с использованием FTS. Они вводят название компании в поле поиска и отправляют.

Сначала я обрезаю все начальные или конечные пробелы, а затем заменяю каждое внутреннее пространство на "NEAR".

Итак, поиск:

"The Association of Lefthanded Picklepickers"

подается как:

"The NEAR Association NEAR of NEAR Lefthanded NEAR Picklepickers"

В следующее предложение WHERE, используемое сеткой результатов поиска:

WHERE CONTAINS(CompanyName, @Search)

Этот метод работает до тех пор, пока шумовое слово (, есть, и, и т. Д.) Не будет частью поиска пользователей. Когда это происходит, сервер SQL не возвращает результатов поиска. В случае вышеупомянутого поиска слово "of" прерывает поиск, даже если в базе данных существует компания с точным названием.

Что я должен сделать, чтобы преодолеть эту проблему?

Ваши мысли и советы очень ценятся!

1 Ответ

3 голосов
/ 25 июня 2010

Попробуйте использовать опцию преобразования шумовых слов, как описано здесь: http://technet.microsoft.com/en-us/library/ms187914(SQL.90).aspx

sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'transform noise words', 1
RECONFIGURE
GO
...