多个全文搜索SQL查询合并和评分(排名搜索结果)

时间:2016-06-20 10:39:49

标签: sql-server full-text-search

我在一个表格中有一堆文章,我想查询搜索结果。使用全文搜索我可以返回一个包含搜索关键字" near"彼此。

全文搜索似乎不允许带有NEAR分隔符的词库(FORMSOF)。

我想在SQL中做的是创建一个查询或一些查询,以不同的方式搜索相同的数据,并返回一个分数(如果使用全文搜索则返回RANK) ,然后我想合并这些结果,所以没有重复,总计等级/分数,以便我可以按这些分数排序。

另外,我还想搜索一个单独的链接表"标签"已分配文件,并为具有相应标签的人分配额外分数。

满足这些要求的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

全文搜索可以在('"word*" near "another*"')语句中执行CONTAINSTABLE之类的搜索。星号将有助于搜索以'word''another'开头的任何单词并排名靠近。

另一方面,您可以使用FORMSOF(Thesaurus, word) AND FORMSOF(Thesaurus, another)声明启动CONTAINSTABLE搜索。

然后合并结果并使用ORDER BY按给定的RANK排序。