向SQL Server全文搜索添加自定义排名机制

时间:2013-04-03 09:27:00

标签: sql-server sorting full-text-search ranking

我有一个全文索引表,我使用FREETEXT进行查询。 该表由具有常量数据的其他表填充,很少更改。 现在有几百万行。

表格结构:

ID (identity), PK
Text (varchar), FT IX
ForeignID (int) -- of the original ID in it's original table

我对结果不满意,因为有时候一个单词会重复太多次,因此引擎排的行数很高。示例:“ Gas Station Young,Young street,Some State ”高于“ Young street ”搜索“ young ”。 对表进行排名就足够了(除了FTS索引已经做的事情之外,不需要对表内的行进行排名)。

我想添加一个简单的自定义排名机制。

我尝试在使用CustomRank查询之前/之前添加FREETEXT列,但这需要太长时间。执行计划表明按CustomRank排序是链条中最薄弱的环节。

我想到了:

  1. 管理另一个字段,所以我会有一个用于显示(DisplayText)和一个用于查询/索引(IndexText),并通过重复行的单词和短语来操作查询/索引我想宣传。
  2. 将其拆分为表并在代码中处理它。每张桌子都会得到它自己的排名。
  3. 有什么想法吗? 谢谢, 望尔。

0 个答案:

没有答案