我在表格中有一个单词/短语列表phrases
。description
我有另一个表,其中包含索引该列的全文目录。
我想results
用每个短语的记录填充一个表,以及在描述中找到该短语的次数:
INSERT INTO results(phrase, foundcount)
SELECT phrase,
(SELECT COUNT(*) FROM table WHERE CONTAINS(table.description, phrase))
FROM phrases;
无论我如何尝试,这都会导致错误:
Incorrect syntax near `phrase`. Expecting STRING, TEX_LEX, or VARIABLE
我真的宁愿不使用游标,这样我就可以将每个游标分配phrase
给一个变量。那真的是唯一的选择吗?
尝试这个:
我想你可以从 DMV 那里得到你需要的东西,包括
sys.dm_fts_index_keywords_by_document
和sys.dm_fts_parser
,像这样:注意:如果将搜索用引号引起来,则会得到完全匹配,因此您并没有真正获得全文索引的好处。您也可以只使用
Like
and wildcards(%
) 来做到这一点。标量函数也不会很好地扩展到大型结果集。