我正在寻找一种方法来查找表格中的单词或短语的频率。
讨论了一些简单的方法(例如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
的出现次数。
由于我在项目的其他部分提取常用短语,是否有办法告诉全文搜索索引那些常用短语(我提取并存储在另一个表中)?
如果没有,我还能做什么?