如何从SQL Server全文索引返回的文本生成上下文文本提取?

时间:2009-02-26 00:12:48

标签: sql-server full-text-search

我正在尝试使用SQL Server的全文索引。这对任务来说似乎很完美,但我的客户想要的是一个类似Google的结果摘要,其中结果显示了围绕搜索词的文本摘录。

如果我搜索“房子”......

  

My House Is a Very, Very, Very Fine House
  ...感谢今天来参观我们的房子 ...你不喜欢这个房子 ......嘿,你为什么要点燃我的房子?...

如果他们的搜索字词与搜索匹配的内容完全匹配,那么这并不难。您可以简单地对文本进行一些繁琐的解析来生成提取。

但屈折和干涸会发生什么?如果我搜索“walk”,查询可能会出现“walk”,“walked”等。我需要确切地知道它所搜索的搜索结果中的 字,所以我会知道从哪里开始我的提取。

对于某些商业产品附加组件来说,这个区域似乎已经成熟,或者可能有一种优雅的方式可以做到这一点我不考虑?

(而且,是的,我们知道GSA和Google Mini。有一些微妙的原因可能导致它们在这种情况下不起作用,所以我们首先尝试SQL FTI。)

1 个答案:

答案 0 :(得分:1)

如果使用SQL 2008,我猜你可以使用sys.dm_fts_parser - 发送你的最终搜索字符串(添加任何FORMSOF等)。这将返回一个单词列表,然后您可以使用它来突出显示页面上的文本(使用jquery插件进行突出显示,任何单词都不会突出显示)