Следопыт для Microsoft SQL Server 2000

Поиск взвешенных форм


Наконец, последним видом приближенного поиска является поиск взвешенных форм (Weighted Term). При взвешенном поиске мы можем указать степень важности появлений отдельных слов и фраз в тексте. При поиске эти веса скажутся на рейтинге, т.е. степени соответствия, найденных записей. Поясним это на примере. Предположим, что мы интересуемся курсом доллара и немецкой марки. Однако сведения о курсе доллара представляют для нас больший интерес. В таком случае мы можем приписать появлению слова доллар

рядом со словом курс вес больший, чем словосочетанию немецкая марка. В таком случае может образоваться следующий запрос:         

SELECT Header FROM Articles WHERE CONTAINS(*, 'ISABOUT( "курс*",

                       

"доллар*" WEIGHT(0.7),

                       

FORMSOF(INFLECTIONAL, "немецкая марка") WEIGHT(0.3) )')

Здесь оператор ISABOUT указывает на поиск по взвешенным формам. Первый параметр задает «основной» термин в запросе, а остальные две записи задают возможные варианты словосочетания, причем модификации курс доллара приписан вес 0.7, а сочетанию курс немецкой марки — 0.3. Обратите внимание, что слово доллар задано в префиксной форме, а словосочетание немецкая марка — в виде образованных форм. К сожалению, информацию о весах найденных записей с помощью предиката CONTAINS получить нельзя. Однако эта информация доступна при использовании функции CONTAINSTABLE. По этой причине операция ISABOUT чаще всего применяется именно в сочетании с CONTAINSTABLE.



Содержание раздела