Компонент Full-Text Search (SQL Server)

В SQL Server 2008 предусмотрены возможности для приложений и пользователей, необходимые для выполнения полнотекстовых запросов к символьным данным в таблицах SQL Server. Перед выполнением полнотекстовых запросов на данной таблице администратор базы данных должен создать в таблице полнотекстовый индекс. В полнотекстовый индекс включается один или несколько символьных столбцов в таблице. Эти столбцы могут иметь любой из следующих типов данных: char, varchar, nchar, nvarchar, text, ntext, image, xml или varbinary(max). Каждый полнотекстовый индекс индексирует один или несколько столбцов базовой таблицы, и каждому столбцу может соответствовать определенный язык. Начиная с SQL Server 2008 полнотекстовый поиск поддерживает более 50 разных языков, например английский, испанский, китайский, японский, арабский, бенгальский и хинди. Полный список поддерживаемых языков полнотекстового поиска см. в разделе sys.fulltext_languages (Transact-SQL).

Для каждого поддерживаемого языка в SQL Server предусмотрены лингвистические компоненты, в том числе средство разбиения по словам и парадигматический модуль, а также пустой файл тезауруса. Кроме того, для каждого языка полнотекстового поиска в SQL Server предусмотрен файл, в котором могут быть определены синонимы для конкретного языка, позволяющие расширить область поисковых запросов (файл тезауруса). Также начиная с SQL Server 2008 предусмотрен системный список стоп-слов. Для поддержки конкретного языка или бизнес-сценария можно изменять системный список стоп-слов путем добавления или удаления стоп-слов (называемых также пропускаемыми словами), а при необходимости можно создавать дополнительные списки стоп-слов.

В SQL Server предусмотрен набор полнотекстовых предикатов (CONTAINS и FREETEXT) и функций, возвращающих наборы строк (CONTAINSTABLE и FREETEXTTABLE) для написания полнотекстовых запросов. С их помощью приложения и пользователи могут выполнять полнотекстовый поиск различного типа: поиск по одному слову или по одной фразе (в т. ч. с ранжированием результирующего набора); поиск по слову или по фразе, расположенных рядом с другиму словом или фразой; поиск по синонимичным формам конкретного слова.

ПримечаниеПримечание

Full-Text Search является необязательным компонентом компонента SQL Server Database Engine. Дополнительные сведения см. в разделе Установка SQL Server 2008 R2..

В этом разделе