Поделиться через


Поиск слов или фраз с использованием взвешенных величин (взвешенное выражение)

Для поиска слов и фраз можно использовать функции CONTAINS или CONTAINSTABLE со взвешенными значениями. Вес, измеряемый числом от 0,0 до 1,0, обозначает степень важности каждого слова и фразы в наборе слов или фраз. Значение веса 0,0 является самым низким, а значение 1,0 — самым высоким.

Примеры

В следующем примере показан запрос, выполняющий поиск всех адресов заказчиков, в которых текст, начинающийся со строки «Bay», продолжается строкой «Drive» или «View», причем поиск выполняется с использованием взвешенных значений. SQL Server 2008 назначает более высокий ранг тем строкам, в которых встречается больше заданных слов.

USE AdventureWorks
GO
SELECT AddressLine1, KEY_TBL.RANK 
FROM Person.Address AS Address INNER JOIN
CONTAINSTABLE(Person.Address, AddressLine1, 'ISABOUT ("Bay*", 
         Street WEIGHT(0.9), 
         View WEIGHT(0.1)
         ) ' ) AS KEY_TBL
ON Address.AddressID = KEY_TBL.[KEY]
ORDER BY KEY_TBL.RANK
GO

Взвешенное выражение можно использовать в сочетании с любым из четырех других типов выражений, а именно с простым, префиксным, производным или с выражением с учетом расположения.