全文目录未更新

时间:2019-01-09 08:46:07

标签: sql-server sql-server-2016

我有一个表,该表包含多个列,其中2个用于全文搜索:

  1. file_data为varbinary(max)
  2. file_extension为nvarchar(8))

我在桌子上也有一个唯一的索引。然后,我创建了一个目录,如下所示:

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”上启动全文索引填充的请求将被忽略。

我缺少设置/填充目录的步骤吗?

0 个答案:

没有答案