【发布时间】:2009-12-07 18:08:18
【问题描述】:
我有一个使用 FTS(全文搜索)的 SP。我想要跨多个字段进行搜索,根据我分配的权重“智能地”对结果进行排名。
考虑对从表中获取数据的视图进行搜索:书籍、作者和流派。
现在,我希望搜索者能够做到:“Ludlum Fiction”、“Robert Ludlum Bourne”、“Bourne Ludlum”等。
不幸的是,我目前能够做到这一点的唯一方法是:http://pastebin.com/fdce11ff
这很糟糕,因为我手动分解了搜索字符串。我知道我这样做是完全错误的,但无法找出在 FTS 中搜索多个字段的正确方法。有人可以帮忙吗?
【问题讨论】:
-
是什么让你觉得你现在的做法是错误的?
-
好吧,我必须自己编写排名算法,并且会假设 FTS 会有一个更优化的算法?另外,我没有得到想要的结果。例如,如果您知道我的意思,搜索“Al Pacino”会得到“Al Author”的结果“Al Something”,而不是“Some guy”的“Al Pacino”。这是因为“Al”这个词在书名和作者字段中重复出现。
标签: sql sql-server sql-server-2005 stored-procedures full-text-search