Дополнительно
Почему SQL Full Text Indexing не возвращает результаты для слов, содержащих #?
Например, мой запрос выглядит следующим образом с использованием SQL Server 2005:
SELECT * FROM Table WHERE FREETEXT(SearchField, 'c#')
У меня есть полнотекстовый индекс, определенный для использования столбца SearchField, который возвращает результаты при использовании:
SELECT * FROM Table WHERE SearchField LIKE '%c#%'
Я считаю, что # - это специальная буква, поэтому как мне разрешить FREETEXT работать правильно для запроса выше?
22
2
Символ # индексируется как знак препинания и поэтому игнорируется, поэтому, похоже, мы удалим букву C из наших списков игнорирования индексации слов.
Протестировал локально после этого и восстановления индексов и получил результаты!
Рассматриваю возможность использования другого языка разбиения слов в индексируемом столбце, чтобы эти специальные символы не игнорировались.
EDIT: Я также нашел эту информацию:
Цитирую многократно повторенную страницу справки о языке запросов Indexing Service:
Насколько я знаю, полнотекстовый поиск в
MSSQL
также выполняется службой индексирования, так что это может помочь.