Управление полнотекстовыми индексами
Просмотр и изменение свойств полнотекстового индекса
Просмотр или изменение свойств полнотекстового индекса в среде Management Studio
В обозревателе объектов разверните узел сервера.
Разверните узел Базы данных, а затем базу данных, которая содержит полнотекстовый индекс.
Раскройте узел Таблицы.
Правой кнопкой мыши щелкните таблицу, в которой определен полнотекстовый индекс, выберите Полнотекстовый индекс, затем в контекстном меню Полнотекстовый индекс выберите Свойства. Откроется диалоговое окно Свойства полнотекстового индекса .
На панели Выбор страницы можно выбрать любую из приведенных ниже страниц.
Страница Описание Общие сведения Отображаются основные свойства полнотекстового индекса. Сюда относятся несколько изменяемых свойств и несколько неизменяемых, например имя базы данных, имя таблицы и имя полнотекстового ключевого столбца. Изменяемыми являются следующие свойства.
Список стоп-слов полнотекстового индекса.
Полнотекстовое индексирование включено.
Отслеживание изменений
Поиск в списке свойств.
Дополнительные сведения см. в разделе Свойства полнотекстового индекса (страница "Общие").Столбцы Отображаются столбцы таблицы, доступные для полнотекстового индексирования. Выбранные столбцы включаются в полнотекстовый индекс. Можно выбрать столько доступных столбцов, сколько нужно включить в полнотекстовый индекс. Дополнительные сведения см. в разделе Свойства полнотекстового индекса (страница столбцов). Расписания Эта страница используется для создания расписаний задания агента SQL Server, которое запускает добавочное заполнение таблицы для заполнения полнотекстового индекса или для управления такими расписаниями. Дополнительные сведения см. в разделе Заполнение полнотекстовых индексов.
**Важно** После выхода из диалогового окна Свойства полнотекстового индекса все созданные расписания связываются с заданием агент SQL Server (запуск добавочного заполнения таблицы на database_name.table_name).Нажмите кнопку ОК. чтобы сохранить изменения и выйти из диалогового окна Свойства полнотекстового индекса .
Просмотр свойств индексированных таблиц и столбцов
Для получения значений различных свойств полнотекстового индексирования можно использовать несколько функций 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, необходимо соединить с базовой таблицей. В таких случаях необходимо знать уникальное имя ключевого столбца. Можно уточнить, используется ли данный уникальный индекс как полнотекстовый ключ, а также получить идентификатор полнотекстового ключевого столбца.
Проверка использования данного уникального индекса в качестве полнотекстового ключевого столбца
Вызовите функцию 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 означает, что используется недопустимое имя индекса, имя индекса не соответствует таблице, таблица не существует и пр.
Поиск идентификатора столбца полнотекстового ключа
Каждая таблица, поддерживающая полнотекстовый поиск, имеет столбец, который обеспечивает принудительное применение уникальных строк в таблице (уникальный**ключевой столбец). Свойство
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.
Включение полнотекстового индексирования для таблицы
Разверните группу серверов, узел Базы данныхи базу данных, содержащую таблицу, для которой нужно включить полнотекстовое индексирование.
Разверните узел Таблицыи щелкните правой кнопкой мыши таблицу, которую нужно отключить или повторно включить для полнотекстового индексирования.
Выберите Полнотекстовый индекси щелкните Отключить полнотекстовое индексирование или Включить полнотекстовое индексирование.
Удаление полнотекстового индекса из таблицы
Удаление полнотекстового индекса из таблицы
В обозревателе объектов щелкните правой кнопкой мыши таблицу, содержащую полнотекстовый индекс, который необходимо удалить.
Выберите Удалить полнотекстовый индекс.
В окне для подтверждения удаления полнотекстового индекса нажмите кнопку ОК .