Answers:
您在看错地方。
您必须检查如下:
使用T-SQL ..
Use database_name
go
ALTER FULLTEXT INDEX ON schema.table_name SET CHANGE_TRACKING AUTO;
完成后,您可以检查最后填充的日期时间的状态
-- script source : http://stackoverflow.com/a/10505496/1387418
-- Modified by Kin on Dec 14' 2015 to reflect the FTCatalogName
DECLARE @CatalogName VARCHAR(MAX)
SET @CatalogName = 'AW2008FullTextCatalog' -- change here !
SELECT name as FTCatalogName,
DATEADD(ss, FULLTEXTCATALOGPROPERTY(@CatalogName,'PopulateCompletionAge'), '1/1/1990') AS LastPopulated
,(SELECT CASE FULLTEXTCATALOGPROPERTY(@CatalogName,'PopulateStatus')
WHEN 0 THEN 'Idle'
WHEN 1 THEN 'Full Population In Progress'
WHEN 2 THEN 'Paused'
WHEN 3 THEN 'Throttled'
WHEN 4 THEN 'Recovering'
WHEN 5 THEN 'Shutdown'
WHEN 6 THEN 'Incremental Population In Progress'
WHEN 7 THEN 'Building Index'
WHEN 8 THEN 'Disk Full. Paused'
WHEN 9 THEN 'Change Tracking' END) AS PopulateStatus
FROM sys.fulltext_catalogs
插入一些数据..
insert into HumanResources.JobCandidate
(BusinessEntityID, Resume, ModifiedDate)
values
(4, NULL, DEFAULT)
现在,您将看到FT目录已更新。
同样在日志(..\MSSQL\Log\SQLFT*
)中,以下是消息...
2015-12-14 12:36:51.29 spid50s信息性:已为表或索引视图'[AdventureWorks2012]。[HumanResources]。[JobCandidate]'(表或索引视图ID为'1589580701',数据库ID为' 5')。已处理的文档数:1.失败的文档数:0。将重试的文档数:0。
从BOL:
默认情况下,或者如果您指定CHANGE_TRACKING AUTO,则全文引擎会对全文索引使用自动填充。初始全部填充完成后,将在基础表中修改数据时跟踪更改,并且跟踪的更改会自动传播。全文索引在后台更新,但是,传播的更改可能不会立即反映在索引中。
默认情况下,SQL Server会在创建新索引后立即完全填充它。但是,整个人口会消耗大量资源。因此,在高峰时段创建全文索引时,通常最好的做法是将全部填充时间延迟到非高峰时间,尤其是在全文索引的基表很大的情况下。但是,直到填充了其所有全文索引后,索引所属的全文目录才可用。
另请参阅提高全文本索引的性能
Issue I am looking at is why it doesn't seem to update at all until I manually rebuild the index.
你按照我的显示设置了吗?如果有很多更改,则需要花费一些时间,因为The full-text index is updated in the background, however, so propagated changes might not be reflected immediately in the index.
由于某种原因,在我的辅助可用性组数据库副本接管并成为主副本之后,全文索引器停止为我的SQL 2012数据库之一自动填充。
删除全文索引并在自动填充处于打开状态的表上重新创建它之后,它又开始自动填充。我使用了SQL Management Studio和“全文索引”创建向导来重新创建索引。
我担心要对数据进行完全索引需要多长时间。我很惊讶地发现,从一个具有547619条记录的表中重新索引3个文本列只花了大约5分钟。
问题中提到的表级别更改跟踪设置保持禁用状态。因此,全文索引更改跟踪绝对不同于表更改跟踪设置。您无需启用表更改跟踪即可使全文索引更改跟踪和全文索引自动工作。
从数据库运行以下查询将显示您的全文索引器最后一次进行爬网的时间。
SELECT * FROM sys.fulltext_indexes
启用自动填充功能后,在将数据插入表中后,raw_end_date应该会更改。
另外,您还将注意到,当您运行使用全文索引的查询时,它将显示最新数据:
select TOP 10 * from YOURDATATABLE where contains((YOUR_indexed_column),'YOURSEARCHTERM') order by YOURPRIMARYKEYCOLUMN desc
其他参考:
文章描述了全文搜索填充的不同方法:https : //msdn.microsoft.com/zh-cn/library/ms142575%28v=sql.100%29.aspx
有关查询全文索引表的信息:https : //technet.microsoft.com/zh-cn/library/ms142571(v=sql.110).aspx#queries
关于全文搜索体系结构的文章:https : //technet.microsoft.com/zh-cn/library/ms142571(v= sql.110).aspx#architecture