Sql server 2012 立即更新Fulltextsearch索引-SQL SERVER 2012
我已经在SQL Server 2012上创建了全文搜索索引。在我不得不从FullTextSearch中包含的表中删除一列之前,它一直工作得很好 然后我尝试删除现有的全文索引和目录,然后重新创建它。但不知何故,在重新创建之后,它并没有显示任何搜索查询的结果(之前的结果已经出现) 我运行以下查询以了解全文搜索的状态:Sql server 2012 立即更新Fulltextsearch索引-SQL SERVER 2012,sql-server-2012,full-text-search,Sql Server 2012,Full Text Search,我已经在SQL Server 2012上创建了全文搜索索引。在我不得不从FullTextSearch中包含的表中删除一列之前,它一直工作得很好 然后我尝试删除现有的全文索引和目录,然后重新创建它。但不知何故,在重新创建之后,它并没有显示任何搜索查询的结果(之前的结果已经出现) 我运行以下查询以了解全文搜索的状态: declare @id int select @id = id FROM sys.sysobjects where [Name] = 'TableName' select 'Table
declare @id int
select @id = id FROM sys.sysobjects where [Name] = 'TableName'
select 'TableFullTextBackgroundUpdateIndexOn' as 'Property', objectpropertyex(@id, 'TableFullTextBackgroundUpdateIndexOn') as 'Value'
union select 'TableFullTextChangeTrackingOn', objectpropertyex(@id, 'TableFullTextChangeTrackingOn')
union select 'TableFulltextDocsProcessed', objectpropertyex(@id, 'TableFulltextDocsProcessed')
union select 'TableFulltextFailCount', objectpropertyex(@id, 'TableFulltextFailCount')
union select 'TableFulltextItemCount', objectpropertyex(@id, 'TableFulltextItemCount')
union select 'TableFulltextKeyColumn', objectpropertyex(@id, 'TableFulltextKeyColumn')
union select 'TableFulltextPendingChanges', objectpropertyex(@id, 'TableFulltextPendingChanges')
union select 'TableHasActiveFulltextIndex', objectpropertyex(@id, 'TableHasActiveFulltextIndex')
union select 'TableFulltextPopulateStatus', objectpropertyex(@id, 'TableFulltextPopulateStatus')
它返回了以下结果:
我运行了以下查询以删除并重新创建全文搜索目录和索引:
GO
EXEC sp_fulltext_database 'enable'
GO
DROP FULLTEXT INDEX ON [AT].[TableName]
GO
DROP FULLTEXT CATALOG [table_search_catalog];
GO
CREATE FULLTEXT CATALOG [table_search_catalog] WITH ACCENT_SENSITIVITY = ON;
GO
DECLARE @Const Varchar(150)
DECLARE @Query1 Varchar(MAX)
SELECT @Const=TC.CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS TC
INNER JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KU
ON TC.CONSTRAINT_TYPE = 'PRIMARY KEY' AND
TC.CONSTRAINT_NAME = KU.CONSTRAINT_NAME
and ku.table_name='TableName'
ORDER BY KU.TABLE_NAME, KU.ORDINAL_POSITION;
SET @Query1 ='CREATE FULLTEXT INDEX ON [AT].[TableName]
(
UserName
Language 1033,
ResumeTitle
Language 1033,
Address1
Language 1033,
OtherSNSURL
Language 1033,
LinkedInURL
Language 1033,
FacebookURL
Language 1033,
TwitterURL
Language 1033,
SkypeID
Language 1033,
comments
Language 1033,
CurrentCompany
Language 1033,
PreviousCompany
Language 1033
)
KEY INDEX '+@Const +'
ON table_search_catalog
WITH STOPLIST = SYSTEM, CHANGE_TRACKING AUTO'
EXEC (@query1)
GO
Update [AT].[TableName] SET UserName=UserName;
GO
ALTER INDEX ALL ON AT.TableName
REORGANIZE;
GO
ALTER FULLTEXT INDEX ON [AT].[TableName]
SET CHANGE_TRACKING MANUAL;
GO
ALTER FULLTEXT INDEX ON [AT].[TableName]
START FULL POPULATION;
GO
ALTER FULLTEXT INDEX ON [AT].[TableName]
START update POPULATION;
GO
ALTER FULLTEXT INDEX ON [AT].[TableName]
SET CHANGE_TRACKING AUTO;
很明显,全文搜索索引包含了要处理的记录,但过了一段时间,它仍然保持不变
请告诉我处理记录通常需要多长时间?
另外,应该做些什么来立即处理未决记录(查询该记录将非常棒)?
谢谢实际上,20分钟后,我运行了查询以查看更改&发现所有挂起的记录都已被处理。但仍然需要花费大量的时间来反映这些变化 谢谢