使用全文搜索计算每行中短语的实例

时间:2015-04-03 09:59:33

标签: c# sql-server full-text-search sql-server-2014

我正在寻找一种方法来查找表格中的单词或短语的频率。

讨论了一些简单的方法(例如this),但他们没有使用全文搜索;因为我要在一张大桌子上这样做,所以表现是一个主要问题。

另一个想法可能是找到包含带全文搜索的单词或短语的行:

 SELECT * FROM MyTable WHERE CONTAINS(Title, '"my phrase"')

...然后通过上述方法或C#中的代码计算频率。

但它似乎并不是一个好主意。

那么,有没有更好的方法使用全文搜索计算每行中单词或短语的重复次数?


更新:从this回答(感谢@JodyT),我发现全文实际上存储了每一行的每个单词的出现次数,所以这样的工作就是:< / p>

SELECT * FROM sys.dm_fts_index_keywords_by_document
( 
    DB_ID('MyDb'),     
    OBJECT_ID('MyTable') 
)
WHERE document_id=1139
AND display_term='phrase'

因此它适用于单词,但不适用于短语。例如,我可能想要在每一行中找出短语visual studio的出现次数。

由于我在项目的其他部分提取常用短语,是​​否有办法告诉全文搜索索引那些常用短语(我提取并存储在另一个表中)?

如果没有,我还能做什么?

0 个答案:

没有答案