답변:
잘못된 장소를보고 있습니다.
다음과 같이 확인해야합니다.
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
자동 채우기가 설정되어 있으면 테이블에 데이터를 삽입 한 후 crawl_end_date가 변경되어야합니다.
또한 전체 텍스트 인덱스를 사용하는 쿼리를 실행하면 최신 데이터가 표시됩니다.
select TOP 10 * from YOURDATATABLE where contains((YOUR_indexed_column),'YOURSEARCHTERM') order by YOURPRIMARYKEYCOLUMN desc
추가 참조 :
전체 텍스트 검색 인구의 다른 방법을 설명하는 기사 : https://msdn.microsoft.com/en-us/library/ms142575%28v=sql.100%29.aspx
전체 텍스트 인덱스 테이블 쿼리에 대한 정보 : https://technet.microsoft.com/en-us/library/ms142571(v=sql.110).aspx#queries
전체 텍스트 검색 아키텍처에 대한 기사 : https://technet.microsoft.com/en-us/library/ms142571(v=sql.110).aspx#architecture