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


Управление полнотекстовыми индексами

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

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

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

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

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

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

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

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

    Список стоп-слов полнотекстового индекса.

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

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

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



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

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

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

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

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

Свойство Описание Компонент
FullTextTypeColumn TYPE COLUMN в таблице, которая содержит информацию о типе документа столбца. COLUMNPROPERTY
IsFulltextIndexed Указывает, включено ли в столбце полнотекстовое индексирование. COLUMNPROPERTY
IsFulltextKey Указывает, является ли индекс полнотекстовым ключом таблицы. INDEXPROPERTY
TableFulltextBackgroundUpdateIndexOn Указывает, имеется ли в таблице фоновое полнотекстовое индексирование обновлений. OBJECTPROPERTYEX
TableFulltextCatalogId Идентификатор полнотекстового каталога, где находятся данные полнотекстового индекса таблицы. OBJECTPROPERTYEX
TableFulltextChangeTrackingOn Указывает, включено ли в таблице полнотекстовое отслеживание изменений. OBJECTPROPERTYEX
TableFulltextDocsProcessed Количество строк, обработанных с начала полнотекстового индексирования. OBJECTPROPERTYEX
TableFulltextFailCount Количество строк, для которых полнотекстовый поиск не выявил индекса. OBJECTPROPERTYEX
TableFulltextItemCount Количество строк, для которых было успешно выполнено полнотекстовое индексирование. OBJECTPROPERTYEX
TableFulltextKeyColumn Идентификатор столбца полнотекстового уникального ключевого столбца. OBJECTPROPERTYEX
TableFullTextMergeStatus Определяет, участвует ли в настоящий момент полнотекстовый индекс для таблицы в процессе слияния. OBJECTPROPERTYEX
TableFulltextPendingChanges Количество ожидающих отслеженных изменений к обработке. OBJECTPROPERTYEX
TableFulltextPopulateStatus Указывает состояние заполнения полнотекстовой таблицы. OBJECTPROPERTYEX
TableHasActiveFulltextIndex Указывает, содержит ли таблица активный полнотекстовый индекс. OBJECTPROPERTYEX

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

Обычно результат функций, возвращающих наборы строк 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.

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

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

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

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

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

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

  3. Выберите Полнотекстовый индекси щелкните Отключить полнотекстовое индексирование или Включить полнотекстовое индексирование.

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

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

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

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

  3. В окне для подтверждения удаления полнотекстового индекса нажмите кнопку ОК .