如何为 SQL Server 全文搜索中的列分配不同的权重?

发布于 2024-09-05 13:05:26 字数 181 浏览 1 评论 0原文

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

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

I'm using SQL Server 2008 FTS and I'd like to be able to integrate weighted rankings into my search results. However, I'd like to weight the columns that a search term is found in differently. For example, if I have a Title column and a Description column, I want matches fond in Title to rank higher than matches in Description.

Is this possible in SQL Server 2008? As far as can I see, I can only add weights to specific terms, not column locations.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

素食主义者 2024-09-12 13:05:26

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

You can use the FREETEXTTABLE function on each column independently and then assign your weights to the Rank column that is returned. I believe I read somewhere though that the Rank column isn't necessarily valid for comparisons across searches, though, so you may need to experiment to ensure that you get accurate results.

紫﹏色ふ单纯 2024-09-12 13:05:26
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; 
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; 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文