Так и работает эволюция: незаметно и по чуть-чуть. Недавно на StackOverflow задали вопрос (в вольном переводе):
Можно ли получить доступ к стеммеру, который используется в SQL Server FullText Search?
Моей первой мыслью было “нельзя”. Но на всякий случай решил свериться с MSDN. Так вот оказалось, что “почти можно”: в SQL Server 2008 в FullText Search помимо радикального изменения архитектуры, внесли менее заметные, но полезные изменения. В частности, была добавлена следующая системная табличная функция:
sys.dm_fts_parser('query_string', lcid, stoplist_id, accent_sensitivity)
Она-то и позволяет обратиться к стеммеру (точнее к синтаксическому анализатору полнотекстовых запросов). Вот как это работает (лучше один раз увидеть, как говорится):
select * from sys.dm_fts_parser('FORMSOF(inflectional, Worked)', 1033, 0, 0)
Т.е. мы запросили все словоформы слова “worked” в английской локали (locId = 1033). И вот какие ключевые слова будут соответствовать этому запросу:
Было бы еще хорошо иметь возможность заглянуть внутрь самого индекса (как это делает Luke для Lucene), но даже с этими средствами жить становится намного веселее.
HTH, AlexS
Комментариев нет:
Отправить комментарий