我有一个表,该表包含多个列,其中2个用于全文搜索:
我在桌子上也有一个唯一的索引。然后,我创建了一个目录,如下所示:
CREATE FULLTEXT CATALOG mycatalog
GO
CREATE FULLTEXT INDEX ON mytable
(
file_data
TYPE COLUMN file_extension
Language 1033
)
KEY INDEX PK_mytable ON mycatalog
WITH CHANGE_TRACKING AUTO
GO
然后我按如下所示插入PDF文件:
DECLARE @pdf VARBINARY(MAX)
SELECT @pdf = BulkColumn
FROM OPENROWSET(BULK N'C:\path\filename.pdf', SINGLE_BLOB) AS file_data;
INSERT INTO mytable (file_data, file_extension)
VALUES (@pdf, '.pdf')
当我使用FREETEXT
进行全文搜索时,没有得到结果。所以我运行这个视图:
SELECT * FROM sys.dm_fts_index_keywords(db_id('mydb'), object_id('dbo.mytable'))
它是空的。我还跑过:
SELECT
FULLTEXTCATALOGPROPERTY(cat.name,'ItemCount') AS [ItemCount],
FULLTEXTCATALOGPROPERTY(cat.name,'MergeStatus') AS [MergeStatus],
FULLTEXTCATALOGPROPERTY(cat.name,'PopulateCompletionAge') AS [PopulateCompletionAge],
FULLTEXTCATALOGPROPERTY(cat.name,'PopulateStatus') AS [PopulateStatus],
FULLTEXTCATALOGPROPERTY(cat.name,'ImportStatus') AS [ImportStatus]
FROM sys.fulltext_catalogs AS cat
除PopulateCompletionAge
外,所有值均为0,这是一个很大的数字。因此,我尝试使用以下方法进行人工填充:
ALTER FULLTEXT INDEX ON mytable START FULL POPULATION;
我收到此消息:
警告:由于表或索引视图当前处于活动状态,因此请求在表或索引视图“ mytable”上启动全文索引填充的请求将被忽略。
我缺少设置/填充目录的步骤吗?