Как я могу получить отфильтрованную строку запроса в MS SQL Server 2008?

Я использую встроенную в MS SQL Server 2008 EXPRESS R2 функцию полнотекстового поиска CONTAINS(). Я знаю, что он фильтрует строку запроса и не ищет такие слова, как and, or, также я заметил, что он фильтрует специальные символы, такие как /, \. Когда я показываю результаты поиска, я хочу выделить совпадающие слова, поэтому мне нужен отфильтрованный запрос, который использовался для поиска, а не исходный. Является ли это возможным?


person Bohdan    schedule 09.11.2011    source источник
comment
Это проблема уровня приложения, а не уровня базы данных. Выполнение поиска для выделения слов является обязанностью приложения, поэтому фактически вам потребуется проанализировать результат и вставить соответствующую кодировку, чтобы выделить слово в вашем приложении.   -  person Chris J    schedule 09.11.2011
comment
Да, я отвечаю за выделение, но СУБД решает, какие части фильтровать, и я хочу знать, как она принимает решение.   -  person Bohdan    schedule 09.11.2011


Ответы (1)


Вы можете взглянуть на sys.dm_fts_parser.

SELECT display_term
FROM sys.dm_fts_parser (' "know that it filters query string and doesn''t search 
                        for words  like and, or also I noticed that it filters
                        special characters like /, \" ', 1033, 0, 0)    
WHERE special_term='Exact Match'
person Martin Smith    schedule 09.11.2011
comment
Это помогло, спасибо. Я также использовал sys.dm_fts_parser (' FORMSOF( FREETEXT, "know ... /, \") ', 1033, 0, 0 ), чтобы иметь полный список. - person Bohdan; 10.11.2011