Поделиться через


Управление индексами Full-Text

Просмотр и изменение свойств индекса Full-Text

Просмотр или изменение свойств полнотекстового индекса в Management Studio

  1. В обозревателе объектов разверните сервер.

  2. Разверните Базы данных, а затем разверните базу данных, содержащую полнотекстовый индекс.

  3. Раскройте Таблицы.

  4. Правой кнопкой мыши щелкните таблицу, в которой определен полнотекстовый индекс, выберите Полнотекстовый индекс, затем в контекстном меню Полнотекстовый индекс выберите Свойства. Откроется диалоговое окно Свойства полнотекстового индекса .

  5. На панели Выбор страницы можно выбрать любую из приведенных ниже страниц.

    Страница Описание
    Общие сведения Отображаются основные свойства полнотекстового индекса. К ним относятся несколько измененных свойств и ряд неизменяемых свойств, таких как имя базы данных, имя таблицы и имя столбца полнотекстового ключа. Изменяемыми являются следующие свойства.

    Список исключений полнотекстового индекса

    Полнотекстовое индексирование включено.

    Отслеживание изменений

    Поиск в списке свойств.



    Дополнительные сведения см. в разделеFull-Text Свойства индекса (страница "Общие") .
    Число столбцов Отображаются столбцы таблицы, доступные для полнотекстового индексирования. Выбранные столбцы включаются в полнотекстовый индекс. Можно выбрать столько доступных столбцов, сколько нужно включить в полнотекстовый индекс. Дополнительные сведения см. в разделеFull-Text Свойства индекса (страница столбцов).
    Расписания Эта страница используется для создания расписаний задания агента SQL Server, которое запускает добавочное заполнение таблицы для заполнения полнотекстового индекса или для управления такими расписаниями. Дополнительные сведения см. в разделе Заполнение полнотекстовых индексов.

    **Важное замечание** После выхода из диалогового окна "Свойства индекса"Full-Text, любые новые созданные расписания связаны с заданием агента SQL Server (Запуск инкрементальной популяции таблиц для database_name.table_name).
  6. Нажмите кнопку "ОК". чтобы сохранить изменения и выйти из диалогового окна "Свойства полнотекстового индекса ".

Просмотр свойств индексированных таблиц и столбцов

Для получения значения различных свойств полнотекстового индексирования можно использовать несколько функций Transact-SQL, таких как OBJECTPROPERTYEX. Эти сведения полезны для администрирования и устранения нарушений в работе средств полнотекстового поиска.

В следующей таблице перечислены полнотекстовые свойства, связанные с индексированных таблицами и столбцами и связанными с ними функциями Transact-SQL.

Недвижимость Описание Функция
FullTextTypeColumn TYPE COLUMN в таблице, которая содержит информацию о типе документа для данного столбца. COLUMNPROPERTY
IsFulltextIndexed Указывает, включено ли в столбце полнотекстовое индексирование. СВОЙСТВОСТОЛБЦА
IsFulltextKey Указывает, является ли индекс полнотекстовым ключом таблицы. INDEXPROPERTY
ТаблицаПолнотекстовоеФоновоеОбновлениеИндексаВкл Указывает, имеется ли в таблице полнотекстовое индексирование фоновых обновлений. OBJECTPROPERTYEX
TableFulltextCatalogId Идентификатор полнотекстового каталога, где находятся данные полнотекстового индекса таблицы. OBJECTPROPERTYEX
TableFulltextChangeTrackingOn Указывает, включено ли в таблице полнотекстовое отслеживание изменений. OBJECTPROPERTYEX
TableFulltextDocsProcessed Количество строк, обработанных с начала полнотекстового индексирования. OBJECTPROPERTYEX
TableFulltextFailCount Количество строк, которые поиск с идентификатором Full-Text не проиндексировал. OBJECTPROPERTYEX
TableFulltextItemCount Количество строк, для которых было успешно выполнено полнотекстовое индексирование. OBJECTPROPERTYEX
TableFulltextKeyColumn Идентификатор столбца полнотекстового уникального ключевого столбца. OBJECTPROPERTYEX
TableFullTextMergeStatus Является ли таблица с полнотекстовым индексом в процессе слияния в настоящий момент. OBJECTPROPERTYEX
ТаблицаПолныйТекстОжидающиеИзменения Количество записей отслеживания изменений, ожидающих обработки. OBJECTPROPERTYEX
TableFulltextPopulateStatus Указывает состояние заполнения полнотекстовой таблицы. OBJECTPROPERTYEX
TableHasActiveFulltextIndex Указывает, содержит ли таблица активный полнотекстовый индекс. OBJECTPROPERTYEX

Получение сведений о ключевом столбце Full-Text

Обычно результат функций, возвращающих наборы строк CONTAINSTABLE или FREETEXTTABLE, необходимо объединить с исходной таблицей. В таких случаях необходимо знать уникальное имя ключевого столбца. Можно уточнить, используется ли данный уникальный индекс как полнотекстовый ключ, а также получить идентификатор полнотекстового ключевого столбца.

Чтобы узнать, используется ли данный уникальный индекс в качестве столбца полнотекстового ключа

  1. Вызовите функцию INDEXPROPERTY с помощью инструкции SELECT . В вызове функции используйте функцию OBJECT_ID для преобразования имени таблицы (table_name) в идентификатор таблицы, укажите имя уникального индекса для таблицы и укажите IsFulltextKey свойство индекса следующим образом:

    SELECT INDEXPROPERTY( OBJECT_ID('table_name'), 'index_name',  'IsFulltextKey' );  
    

    Эта инструкция возвращает значение 1, если индекс используется для обеспечения уникальности столбца полнотекстового ключа и 0, если он отсутствует.

Пример

Следующий пример уточняет, используется ли индекс PK_Document_DocumentID для обеспечения уникальности столбца полнотекстового ключа:

USE AdventureWorks  
GO  
SELECT INDEXPROPERTY ( OBJECT_ID('Production.Document'), 'PK_Document_DocumentID',  'IsFulltextKey' )  

Если индекс PK_Document_DocumentID используется для обеспечения уникальности столбца полнотекстового ключа, будет возвращено значение 1. В противном случае возвращается значение 0 или NULL. Значение NULL означает, что используется недопустимое имя индекса, имя индекса не соответствует таблице, таблица не существует или т. д.

Поиск идентификатора столбца полнотекстового ключа

  1. Каждая таблица с поддержкой полнотекстового текста содержит столбец, используемый для принудительного применения уникальных строк для таблицы ( уникальный столбец ключа**). Свойство, полученное TableFulltextKeyColumn из функции OBJECTPROPERTYEX, содержит идентификатор столбца уникального ключевого столбца.

    Для получения идентификатора можно вызвать функцию OBJECTPROPERTYEX с помощью инструкции SELECT. Используйте функцию OBJECT_ID для преобразования имени таблицы (table_name) в идентификатор таблицы и указания TableFulltextKeyColumn свойства следующим образом:

    SELECT OBJECTPROPERTYEX(OBJECT_ID( 'table_name'), 'TableFulltextKeyColumn' ) AS 'Column Identifier';  
    

Примеры

В следующем примере возвращается идентификатор столбца полнотекстового ключа или значение NULL. NULL означает, что используется недопустимое имя индекса, имя индекса не соответствует таблице, таблица не существует или т. д.

USE AdventureWorks;  
GO  
SELECT OBJECTPROPERTYEX(OBJECT_ID('Production.Document'), 'TableFulltextKeyColumn');  
GO  

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

USE AdventureWorks;  
GO  
DECLARE @key_column sysname  
SET @key_column = Col_Name(Object_Id('Production.Document'),  
ObjectProperty(Object_id('Production.Document'),  
'TableFulltextKeyColumn')   
)  
SELECT @key_column AS 'Unique Key Column';  
GO  

В этом примере возвращается столбец результирующих наборов с именем Unique Key Columnодной строки, содержащей имя уникального ключевого столбца таблицы Document, DocumentID. Обратите внимание, что если этот запрос содержал недопустимое имя индекса, имя индекса не соответствовало таблице, таблица не существовала и т. д., она вернет ЗНАЧЕНИЕ NULL.

Отключение или повторное включение таблицы для индексирования Full-Text

В SQL Server все созданные пользователем базы данных по умолчанию включены в полнотекстовый режим. Кроме того, отдельная таблица автоматически включается для полнотекстового индексирования, как только для нее создается полнотекстовый индекс, и в этот индекс добавляется столбец. Таблица автоматически выключается для полнотекстового индексирования, как только из ее полнотекстового индекса удаляется последний столбец.

В таблице с полнотекстовым индексом можно вручную отключить или повторно включить таблицу для полнотекстового индексирования с помощью SQL Server Management Studio.

Включение таблицы для полнотекстового индексирования

  1. Разверните группу серверов, раздел Базы данных, и базу данных, содержащую таблицу, для которой нужно включить полнотекстовое индексирование.

  2. Разверните узел Таблицы, и щелкните правой кнопкой мыши таблицу, которую вы хотите отключить или повторно включить для полнотекстового индексирования.

  3. Выберите Full-Text индекс и нажмите кнопку "Отключить индекс Full-Text" или "Включить индекс Full-Text".

Удаление индекса Full-Text из таблицы

Удаление полнотекстового индекса из таблицы

  1. В обозревателе объектов щелкните правой кнопкой мыши таблицу, содержащую полнотекстовый индекс, который необходимо удалить.

  2. Выберите Удалить полнотекстовый индекс.

  3. При появлении запроса нажмите кнопку "ОК ", чтобы подтвердить удаление полнотекстового индекса.