我刚刚获得了针对我们网站的新搜索功能的要求列表。他们是图书出版商的网站,所以这是我们在这里运营的基本领域。数据存储在启用了全文的Microsoft SQL 2005数据库服务器(SP3)中。
现在,要求声明可以在三个方面进行搜索:书名,作者姓名和书籍文本。这本身很容易做到三个单独的查询。但是,还有更多。要求声明搜索结果应按以下顺序返回:
此外,还有次要要求:
很多类似的规则。
所以,说你有一本约翰逊书,由作家皮特约翰逊(或其他人)撰写。搜索查询'john'应该返回以下(ish):
搜索查询'Johnson':
...反正。这基本上是要求,我只是想打出来。现在,提出几个问题:
我在这里有点想法和建议。
答案 0 :(得分:1)
有CONTAINSTABLE和FREETEXTTABLE个函数 - 它们返回RANK列,即“相关性排名”。可能这些功能加上非文本列的一些复杂排序将起到作用。
如果您决定在应用中实施FTS,请查看第三方解决方案。 Lucene(或Lucene.NET)可能很适合开始。