Я использую встроенную в MS SQL Server 2008 EXPRESS R2 функцию полнотекстового поиска CONTAINS()
. Я знаю, что он фильтрует строку запроса и не ищет такие слова, как and, or
, также я заметил, что он фильтрует специальные символы, такие как /, \
. Когда я показываю результаты поиска, я хочу выделить совпадающие слова, поэтому мне нужен отфильтрованный запрос, который использовался для поиска, а не исходный. Является ли это возможным?
Как я могу получить отфильтрованную строку запроса в MS SQL Server 2008?
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
Это помогло, спасибо. Я также использовал
sys.dm_fts_parser (' FORMSOF( FREETEXT, "know ... /, \") ', 1033, 0, 0 )
, чтобы иметь полный список.
- person Bohdan; 10.11.2011