C# 使用全文搜索统计每行中短语的实例
我正在寻找一种方法来查找表中单词或短语的频率 讨论了一些简单的方法(例如),但它们没有使用全文serach;因为我要在一张大桌子上做这件事,所以性能是一个主要的问题 另一个想法可能是通过全文搜索查找包含该单词或短语的行:C# 使用全文搜索统计每行中短语的实例,c#,sql-server,full-text-search,sql-server-2014,C#,Sql Server,Full Text Search,Sql Server 2014,我正在寻找一种方法来查找表中单词或短语的频率 讨论了一些简单的方法(例如),但它们没有使用全文serach;因为我要在一张大桌子上做这件事,所以性能是一个主要的问题 另一个想法可能是通过全文搜索查找包含该单词或短语的行: SELECT * FROM MyTable WHERE CONTAINS(Title, '"my phrase"') 。。。然后用上面的方法或C#中的代码计算频率 但这似乎不是个好主意 那个么,有并没有更好的方法来使用全文搜索计算每行中单词或短语的重复次数呢 更新:从an
SELECT * FROM MyTable WHERE CONTAINS(Title, '"my phrase"')
。。。然后用上面的方法或C#中的代码计算频率
但这似乎不是个好主意
那个么,有并没有更好的方法来使用全文搜索计算每行中单词或短语的重复次数呢
更新:从answer(谢谢@JodyT)中,我发现全文实际上存储了每行中每个单词的出现次数,因此类似这样的内容可以完成这项工作:
SELECT * FROM sys.dm_fts_index_keywords_by_document
(
DB_ID('MyDb'),
OBJECT_ID('MyTable')
)
WHERE document_id=1139
AND display_term='phrase'
因此,它适用于单词,但不适用于短语。例如,我可能想找出短语visualstudio
在每一行中的出现情况
由于我在项目的其他部分提取常用短语,有没有办法让全文搜索也为这些常用短语(我提取并存储在另一个表中)编制索引
如果没有,我还能做什么?可能重复@JodyT我可能无法正确理解该答案,但是,根据答案的解释,似乎无法在该答案中获得每行的词频数。根据MSDN页面
sys的描述,dm_fts_index_keywords_by_document
应该能够返回每行的计数。@JodyT抱歉,我的错误。我更新了我的问题。