SQL Server 2005 Полнотекстовый поиск - допустимые символы тезауруса - PullRequest
0 голосов
/ 06 апреля 2010

FORMSOF THESAURUS выдает ошибки для конкретного персонажа. Например. FORMSOF (THESAURUS, hel!lo) выдает ошибку, тогда как FORMSOF (THESAURUS, hel?lo) работает.

Однако я не нашел никакой документации о том, какие символы разрешены.

Вы можете мне помочь?

1 Ответ

3 голосов
/ 30 декабря 2010

Тезаурус ожидает слово или термин:

http://msdn.microsoft.com/en-us/library/cc879300(v=sql.110).aspx

В моем .NET-коде я использую регулярное выражение для удаления всех этих специальных символов (обычно оставляя AZ и0-9.

http://msdn.microsoft.com/en-us/library/aa258227(v=sql.80).aspx

говорит:

слово

Строка символов без пробелов и знаков препинания.

фраза

Это одно или несколько слов с пробелами между каждым словом.

Убедитесь, что у вас настроены стоп-слова (я изменил, чтобы не было ни одного изих в моем коде)

Стоп-слова

При определении полнотекстового запроса механизм полнотекстового поиска отбрасывает стоп-слова (также называемые шумовыми словами) из критериев поиска.Стоп-слова - это такие слова, как «a», «and», «is» или «the», которые могут встречаться часто, но обычно не помогают при поиске определенного текста. Стоп-слова перечислены в стоп-листе. Каждый полнотекстовый индекссвязан с конкретным стоп-листом, который определяет, какие стоп-слова опущены в запросеили индекс во время индексации.Для получения дополнительной информации см. Стоп-слова и Стоп-листы.

Здесь также есть отличная библиотека для .net: (я использовал это для преобразования фраз в полнотекстовых запросах) http://www.sqlservercentral.com/articles/Full-Text+Search+(2008)/64248/

РЕДАКТИРОВАТЬ: Это может помочь: Обратите внимание, что я заменил на ничто, иначе это становится Thats и не будет совпадать.

search = search.Replace("’s", "");
search = Regex.Replace(search, @"[#$%&()*“”+,./:;<=>!?@[\\\]^_`’{|}~]", "");
...