如何在SQL Server全文搜索中为列分配不同的权重?
我使用的是SQLServer2008FTS,我希望能够将加权排名集成到我的搜索结果中。但是,我想对搜索词所在的列进行不同的加权。例如,如果我有一个Title列和一个Description列,我希望Title中的匹配项的排名高于Description中的匹配项如何在SQL Server全文搜索中为列分配不同的权重?,sql,full-text-search,ranking,Sql,Full Text Search,Ranking,我使用的是SQLServer2008FTS,我希望能够将加权排名集成到我的搜索结果中。但是,我想对搜索词所在的列进行不同的加权。例如,如果我有一个Title列和一个Description列,我希望Title中的匹配项的排名高于Description中的匹配项 这在SQL Server 2008中是否可能?据我所知,我只能为特定术语添加权重,而不能为列位置添加权重。您可以对每列单独使用该函数,然后将权重分配给返回的秩列。不过,我相信我在某个地方读到过,排名栏不一定适用于不同搜索的比较,因此您可能需
这在SQL Server 2008中是否可能?据我所知,我只能为特定术语添加权重,而不能为列位置添加权重。您可以对每列单独使用该函数,然后将权重分配给返回的秩列。不过,我相信我在某个地方读到过,排名栏不一定适用于不同搜索的比较,因此您可能需要进行实验,以确保获得准确的结果。谢谢,这正是我所担心的。
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;