0

我正在使用 SQL Server 2008 FTS,我希望能够将加权排名集成到我的搜索结果中。但是,我想对在不同的搜索词中找到的列进行加权。例如,如果我有一个 Title 列和一个 Description 列,我希望 Title 中的匹配项排名高于 Description 中的匹配项。

这在 SQL Server 2008 中可行吗?据我所知,我只能为特定术语添加权重,而不是列位置。

4

2 回答 2

1

您可以对每一列单独使用FREETEXTTABLE函数,然后将您的权重分配给返回的 Rank 列。我相信我在某处读到过,虽然排名列不一定适用于跨搜索的比较,但您可能需要进行试验以确保获得准确的结果。

于 2010-06-10T18:58:20.540 回答
0
SELECT title, filename, sum(relevance)
FROM (
    SELECT title, filename, 10 AS relevance FROM page WHERE title like ‘%about%’
    UNION
    SELECT title, filename, 7 AS relevance FROM page WHERE filename like ‘%about%’
    UNION
    SELECT title, filename, 5 AS relevance FROM page WHERE keywords like ‘%about%’
    UNION
    SELECT title, filename, 2 AS relevance FROM page WHERE description like ‘%about%’
) results
GROUP BY title, filename
ORDER BY relevance desc; 
于 2012-05-04T18:20:48.013 回答