Sql Server 2005 Полнотекстовая проблема чувствительности к регистру - PullRequest
2 голосов
/ 12 января 2010

Кажется, у меня странная ошибка в Microsoft SQL Server 2005, когда FREETEXT() поиски несколько чувствительны к регистру, несмотря на то, что сортировка нечувствительна к регистру (Latin1_General_CI_AS).

Прежде всего, LIKE запросы абсолютно нечувствительны к регистру, поэтому

WHERE column LIKE '%word%'

и

WHERE column LIKE '%Word%'

возвращает те же результаты.

Кроме того, FREETEXT в некоторой степени нечувствительны к регистру, например

WHERE FREETEXT(column, 'Word')

вернет результаты в разных случаях.

НО

WHERE FREETEXT(column, 'word')

, все еще возвращая регистронезависимые совпадения для word, дает другой набор результатов. Или, как я выяснил после некоторого исследования, поиск word дает все совпадения для разных случаев word, но поиск Word дает те же PLUS результаты.

Или для использования одного из реальных случаев, которые я обнаружил, поиск marketingleader возвращает все результаты, содержащие это слово, независимо от регистра, тогда как поиск Marketingleader вернул бы их, но также и результаты, которые просто содержат leader которые не отображаются при поиске строчных букв.

есть ли у кого-нибудь идея о том, что вызывает это, и как я могу включить словесный / нечеткий поиск строчных слов?

Любая помощь будет оценена.

1 Ответ

1 голос
/ 12 января 2010

Используйте альтернативу freetext, которая равна contains, и результаты перегиба не обязательны.

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

.. ups только что увидел, что вы упомянули в вашем вопросе, но ведет ли он себя так же, как и свободный текст в приведенных примерах?

...