SQL 2008 FTS отслеживает изменения

#sql-server #sql-server-2008 #full-text-search

#sql-сервер #sql-server-2008 #полнотекстовый поиск

Вопрос:

У меня есть таблица с каталогом FTS на SQL Server 2008 R2 CU5, который настроен на отслеживание изменений. Не удается отслеживать данные в течение дня, что вызывает проблемы с поиском; строки находятся в таблице, но не в каталоге FTS.

Каков наиболее эффективный способ идентифицировать строки в моей таблице, которые не были проиндексированы, чтобы я мог обновить их, чтобы они снова отслеживались изменениями отслеживания FTS для заполнения в индексе?

Спасибо

Ответ №1:

Не получив ответа, это то, что я делаю в данный момент; Я не уверен, что это самый эффективный способ, но еще не придумал способ его оптимизации.

Найдите интересующий меня идентификатор таблицы

 DECLARE @TableID INT, @Debug bit = 1
SELECT @TableID = id
FROM sysobjects WHERE name = 'tblMyTableOfFacts'
  

задайте таблицу, чтобы получить список всех индексированных строк

 DECLARE @MissingIndexValues TABLE (DocID INT, rowID UNIQUEIDENTIFIER)
  

Используя встроенный индекс, извлеките список всех индексированных строк

 INSERT INTO @MissingIndexValues
EXEC sp_fulltext_keymappings @TableID