Задание приоритета / веса для столбца с помощью FREETEXTTABLE - PullRequest
11 голосов
/ 10 ноября 2009

Я использую полнотекстовый поиск SQL Server с ключевым словом FREETEXTTABLE, чтобы вернуть таблицу результатов, основанную на нескольких столбцах, для поиска по ключевому слову.

Теперь у меня есть 2 основных столбца, по которым я веду поиск: «Название» и «Описание». Я хочу отдать приоритет столбцу «Название», так как он, скорее всего, будет иметь мои результаты, но «Описание» может также содержать результаты, но я хочу, чтобы он имел приоритет для слово в заголовке над описанием (но я не хочу использовать CONTAINSTABLE, так как это слишком конкретно). Есть ли способ дать вес столбцов / приоритет, используя FREETEXTTABLE?

1 Ответ

13 голосов
/ 11 ноября 2009

Вам нужно будет использовать 2 запроса с объединением, предоставляя собственный «вес», что-то вроде этого:

select  [key], sum(rnk) as weightRank
from
        (
            select Rank * 2.0 as rnk, [key] from freetexttable(tableName,Title,'free text string')
            union all
            select Rank * 1.0 as rnk, [key] from freetexttable(tableName,Description,'free text string')
        ) as t
group by [key]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...