使用Lucene,可以检索索引中包含的术语,即索引中文档包含的唯一的词干化单词,不包括停用词。这对于生成自动完成建议等非常有用。使用MS SQL Server全文本索引是否可以实现类似的功能?
您可以在SQL Server 2008中使用新的系统视图来获取术语和出现次数,这符合您的需求吗?
sys.dm_fts_index_keywords_by_document
(
DB_ID('database_name'),
OBJECT_ID('table_name')
)
您需要提供全文表的db_id
和object_id
。以下是此链接的MSDN链接:sys.dm_fts_index_keywords_by_document。
SELECT * FROM sys.dm_fts_parser (' "The Microsoft business analysis" ', 1033, 0, 0)
要获取关键字,您可以使用sys.dm_fts_index_keywords。
希望这能指引您朝着正确的方向前进。干杯。
DECLARE @TableName NVARCHAR(200) = 'MyTable'
DECLARE @ColumnName NVARCHAR(200) = 'MyColumn'
SELECT DISTINCT(display_term), occurrence_count FROM sys.dm_fts_index_keywords_by_document
(
DB_ID(),
OBJECT_ID(@TableName)
)
WHERE column_id =
(
SELECT TOP 1 col.column_id FROM sys.objects obj
INNER JOIN sys.columns col ON col.object_id = obj.object_id
WHERE obj.name = @TableName
AND col.name = @ColumnName
)
AND keyword != 0xFF
ORDER BY occurrence_count DESC
sys.dm_fts_index_keywords
返回索引术语列表,附带统计信息,而不是噪声词列表,后者通过sys.fulltext_stopwords
返回。