2016-03-31 9 views
0

SQL Server 2012でフルテキスト検索インデックスを作成しました。FullTextSearchに含まれているテーブルから列を削除するまで、正常に動作していました。フルテキスト検索インデックスを直ちに更新する - SQL SERVER 2012

次に、既存の全文索引&カタログを削除して再作成してみました。しかし、何らかの形でそれを作り直した後、検索クエリ(以前の結果が来ていた)の結果は表示されませんでした。

は私がフルテキスト検索のための状況を知るために、次のクエリを実行しました:

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') 

それは次のような結果が返されました:

enter image description here

私は&再作成を削除するには、次のクエリを実行したフルテキスト検索カタログ&インデックス:

 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 '[email protected] +' 
      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; 

明らかに、フルテキスト検索インデックスには処理されるレコードが含まれていますが、しばらくしても同じままです。

レコードの処理に通常どのくらいの時間がかかるか教えてください。 保留中のレコードを即座に処理するには、何が必要ですか(これについての質問はすばらしいでしょう)。

おかげ

答えて

0

は、実際に20分後、私は保留中のすべてのレコードが処理されていることが判明&変更を確認するためにクエリを実行しました。しかし、変更を反映するにはまだ多くの時間がかかりました。

ありがとうございました

関連する問題