Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
Вы можете настроить полнотекстовый индекс для поддержки поиска с ограничением по свойствам для определённых свойств, таких как Author и Title, для поддерживаемых типов документов в столбце двоичных данных varbinary(max) (включая FILESTREAM) или image. Без такой конфигурации полнотекстовые запросы выполняют общие поиски по всему документу, не различая содержание свойств от основного контента. Этот вид поиска по свойству называется поиском по свойству.
Связанный фильтр (IFilter) определяет возможность поиска свойств в заданном типе документа. Для некоторых типов документов связанный фильтр IFilter извлекает часть или все свойства, определенные для этого типа документа, а также содержимое текста документа. Можно настроить полнотекстовый индекс, чтобы разрешить поиск только в свойствах, которые извлекаются фильтром IFilter во время полнотекстового индексирования. Среди фильтров IFilter, извлекающих ряд свойств документа, есть фильтры IFilter для типов документов Microsoft Office (например, .docx, .xlsx и .pptx). С другой стороны, XML IFilter не возвращает свойства.
Как Full-Text Search работает с поисковыми свойствами
Full-Text Search поддерживает поиск свойств, присваивая внутренний идентификатор свойства каждому зарегистрированному объекту и храня эти идентификаторы в полном текстовом индексе.
Внутренние идентификаторы свойств
Средство полнотекстового поиска произвольным образом назначает каждому зарегистрированному свойству внутренний идентификатор свойства, который действует в пределах данного списка свойств поиска и однозначно определяет свойство в списке. Поэтому, если свойство добавлено в несколько списков свойств поиска, то его внутренний идентификатор скорее всего, будет разным в различных списках.
Когда свойство регистрируется в списке поиска, средство полнотекстового поиска произвольным образом назначает свойству внутренний идентификатор . Внутренний идентификатор свойства — это целое число, однозначно определяющее свойство в пределах списка свойств поиска.
На следующем рисунке показано логическое представление списка свойств поиска, в котором задано два свойства: Title и Keywords. Название списка свойств для ключевых слов — Tags. Эти свойства относятся к одному и тому же набору свойств, GUID которого равен f29f85e0-4ff9-1068-ab91-08002b27b3d9. Для свойства Title используется целочисленный идентификатор 2, а для свойства Tags (Keywords) — целочисленный идентификатор 5. Средство полнотекстового поиска произвольным образом сопоставляет каждое свойство с внутренним идентификатором, который уникален в пределах списка свойств поиска. Для свойства Title используется внутренний идентификатор 1, а для свойства Tags — внутренний идентификатор 2.
Внутренний идентификатор свойства, скорее всего, будет отличаться от целочисленного идентификатора этого свойства. Если данное свойство зарегистрировано в нескольких списках свойств поиска, каждому списку свойств поиска может быть назначен отдельный внутренний идентификатор свойств. Например, в одном списке свойств поиска свойство может иметь внутренний идентификатор 4, в другом списке — идентификатор 3 и т. д. Целочисленный же идентификатор свойства, напротив, привязан к свойству и остается одинаковым независимо от места использования свойства.
Индекс зарегистрированной недвижимости
После связывания полнотекстового индекса со списком свойств поиска необходимо выполнить повторное заполнение индекса выражениями поиска, относящимися к свойствам индекса. Во время полнотекстового индексирования содержимое всех свойств сохраняется в полнотекстовом индексе вместе с другим содержимым. Однако во время индексирования выражения поиска, обнаруженного в зарегистрированном свойстве, полнотекстовый индексатор сохраняет вместе с выражением соответствующий внутренний идентификатор свойства. Напротив, если свойство не зарегистрировано, оно хранится в полнотекстовом индексе так, как если бы было частью тела документа, и имеет нулевое значение внутреннего идентификатора свойства.
На следующем рисунке показано логическое представление отображения выражений поиска в полнотекстовом индексе, который связан со списком свойств поиска, представленным на предыдущем рисунке. Образец документа, Документ 1, содержит три свойства (Title, Author и Keywords), а также основное тело документа. Для свойств Title и Keywords, которые указываются в списке свойств поиска, выражения поиска связываются с соответствующими внутренними идентификаторами свойств в полнотекстовом индексе. Содержимое свойства Author, напротив, индексируется так, как если бы оно входило в текст документа. Это означает, что регистрация свойства несколько увеличивает размер полнотекстового индекса, в зависимости от объема содержимого, хранящегося в свойстве.
Поисковые запросы в свойстве Титул (Favorite, Biking, и Trails) связаны с внутренним идентификатором свойства, присвоенным Титулу для этого индекса 1. Поисковые запросы в свойстве Ключевые слова (biking и mountain) связаны с внутренним идентификатором свойства, присвоенным тегам для этого индекса 2. Для поисковых запросов в свойстве Автор (Jane и Doe) и поисковых в теле документа внутренний идентификатор свойства равен 0. Термин biking встречается в свойстве Титул, в разделе Ключевые слова (Теги) и в теле документа. Поиск значения biking в свойстве «Заголовок» или «Ключевые слова (теги)» вернёт этот документ в результатах поиска. Общий полнотекстовый запрос для biking также возвращал бы этот документ, как если бы индекс не был настроен для поиска по свойствам. Поиск по свойству «Автор» со значением biking не найдёт этот документ.
В полнотекстовом запросе по свойствам используются внутренние идентификаторы свойств, зарегистрированные в текущем списке свойств, предназначенном для поиска в полнотекстовом индексе.
Влияние включения поиска по свойствам
Настройка полнотекстового индекса для поддержки поиска по одному или нескольким свойствам несколько увеличивает размер индекса в зависимости от числа свойств, указанных в списке свойств поиска, и содержимого каждого свойства.
При тестировании типичных корпусов документов Microsoft Word, Excel и PowerPoint был настроен полнотекстовый индекс для индексирования типичных свойств поиска. Индексирование этих свойств увеличило размер полнотекстового индекса примерно на 5 процентов. Такое приблизительное увеличение размера, вероятно, характерно для большинства корпусов документов. Однако в конечном итоге увеличение размера зависит от объёма данных о свойствах в данном корпусе документов относительно общего объёма данных.
Создайте список свойств поиска и включите поиск по свойствам
Чтобы включить поиск по свойствам, создайте список свойств поиска, добавьте в него одно или несколько свойств, а затем свяжите список с полнотекстовым индексом.
Создать список свойств поиска
Создайте список свойств поиска, используя либо Transact-SQL, либо SQL Server Management Studio.
Создайте список поисковых свойств в Transact-SQL
Используйте заявление CREATE SEARCH PROPERTY LIST и укажите хотя бы название для списка.
Создайте список свойств поиска в SQL Server Management Studio
В обозревателе объектов разверните сервер.
Разверните Базы данных, и затем разверните базу данных, в которой нужно создать список свойств поиска.
Разверните Хранилище, затем щелкните правой кнопкой мыши на Списки свойств поиска.
Выберите Создать список свойств поиска.
Введите имя списка свойств.
По желанию можно указать другого владельца списка свойств.
Выберите один из следующих параметров.
Создание пустого списка свойств поиска
Создание на основе существующего списка свойств поиска
Дополнительные сведения см. в разделе CREATE SEARCH PROPERTY LIST.
Нажмите ОК.
Добавить свойства в список поисковых свойств
Для поиска в свойствах необходимо создать список свойств поиска и указать одно или несколько свойств, доступных для поиска. После добавления свойства в список свойств поиска оно регистрируется для данного списка. Чтобы добавить свойство в список свойств поиска, требуются следующие значения.
Идентификатор GUID набора свойств
Каждое свойство поиска принадлежит одному набору свойств, который содержит группу связанных свойств. Каждый набор свойств определяется глобально уникальным идентификатором (GUID).
Идентификатор свойства целочисленного типа
Каждое свойство поиска обладает идентификатором, который уникален в пределах набора свойств. Для заданного свойства идентификатором может быть целое число или строка, однако для полнотекстового поиска поддерживаются только целочисленные идентификаторы.
Имя свойства
Это имя, которое пользователи будут указывать в полнотекстовых запросах для поиска по свойству. Имя свойства может содержать внутренние пробелы. Максимальная длина составляет 256 символов.
Имя свойства может быть одним из следующих вариантов.
Каноническое название свойства в Windows, например
System.AuthorилиSystem.Contact.HomeAddress.Понятное имя, которое удобно запомнить пользователям. Некоторые свойства связанные с известными понятными именами, например «Автор» или «Домашний адрес», но можно указать имя, которое лучше всего подходит для пользователей.
Примечание.
Сочетание GUID набора свойств и идентификатора свойства должно быть уникальным в заданном списке свойств поиска. Это значит, что вы не можете добавлять одно и то же свойство более одного раза с разными названиями или описаниями.
Описание свойства (необязательно)
При добавлении свойства поиска в список свойств поиска можно указать необязательное описание. Например, вы можете предоставить информацию об объекте, которая не видна из названия, или описать набор свойств этого объекта.
Получить значения для списка свойств поиска
См. «Поиск GUID наборов свойств и целочисленных идентификаторов свойств для свойств поиска».
Добавьте свойство в список поисковых свойств в Transact-SQL
Используйте высказывание ALTER SEARCH PROPERTY LIST со значениями, которые вы получили, используя один из методов, описанных в статье: Найти GUID множества свойств и целочисленные идентификаторы свойств для поисковых свойств.
В следующем примере демонстрируется использование этих значений при добавлении свойства в список свойств поиска:
ALTER SEARCH PROPERTY LIST DocumentTablePropertyList
ADD 'Title' WITH (
PROPERTY_SET_GUID = 'F29F85E0-4FF9-1068-AB91-08002B27B3D9',
PROPERTY_INT_ID = 2,
PROPERTY_DESCRIPTION = 'System.Title - Title of the item.'
);
Добавьте свойство в список поисковых свойств в SQL Server Management Studio
Используйте диалоговое окно Свойства списка свойств поиска для добавления и удаления свойств поиска. Элемент Списки свойств поиска находится в обозревателе объектов в узле Хранение соответствующей базы данных.
Свяжите список свойств поиска с полнотекстовым индексом
Для поддержки поиска по свойствам, зарегистрированным для списка свойств поиска, в полнотекстовом индексе необходимо связать список свойств поиска с индексом и выполнить повторное заполнение индекса. Во время повторного заполнения полнотекстового индекса создаются записи индекса для выражений поиска в каждом из зарегистрированных свойств.
Пока полнотекстовый индекс остаётся связанным с этим списком свойств поиска, полнотекстовый запрос может использовать PROPERTY опцию CONTAINS предиката для поиска по свойствам, зарегистрированным для этого списка.
Если изменить список свойств поиска, связанный с полнотекстовым индексом, то необходимо перестроить индекс, чтобы обеспечить согласованное состояние. Этот индекс немедленно усекается и остается пустым до запуска полной операции заполнения. Для получения дополнительной информации о том, когда изменение списка свойств поиска приводит к перестройке индекса, см. раздел «Замечания» в ALTER FULLTEXT INDEX.
Свяжите список свойств поиска с полнотекстовым индексом в Transact-SQL
Используйте оператор ALTER FULLTEXT INDEX с предложением SET SEARCH PROPERTY LIST = <property_list_name>.
Свяжите список свойств поиска по содержимому с полнотекстовым индексом в SQL Server Management Studio
Укажите значение Список свойств поиска на странице Общие диалогового окна Свойства полнотекстового индекса .
Свойства поиска запроса с CONTAINS
Далее представлен базовый синтаксис CONTAINS для полнотекстового запроса по свойствам:
SELECT column_name
FROM table_name
WHERE CONTAINS (PROPERTY(column_name, 'property_name'), '<contains_search_condition>');
Например, следующий запрос выполняет поиск по индексированному свойству Titleв столбце Document таблицы Production.Document в базе данных AdventureWorks . Запрос возвращает только те документы, у которых свойство Title содержит строку Maintenance или Repair.
USE AdventureWorks2025;
GO
SELECT Document
FROM Production.Document
WHERE CONTAINS (PROPERTY(Document, 'Title'), 'Maintenance OR Repair');
GO
В этом примере предполагается, что фильтр IFilter для документа извлекает свойство Title, это свойство добавляется в список свойств поиска, а этот список связывается с полнотекстовым индексом.
Управление поисковыми списками свойств
После создания списка свойств поиска вы можете его просматривать, менять или удалять.
Просмотр и изменение списка свойств поиска
Просмотр и изменение списка свойств поиска с помощью Transact-SQL или SQL Server Management Studio.
Просмотр и изменение списка свойств поиска в Transact-SQL
Используйте оператор ALTER SEARCH PROPERTY LIST для добавления или удаления свойств поиска.
Просмотр и изменение списка свойств поиска в SQL Server Management Studio
В обозревателе объектов разверните сервер.
Раскройте узел Базы данных, а затем раскройте базу данных.
Разверните Хранилище.
Разверните Списки свойств поиска для отображения списков свойств поиска.
Щелкните правой кнопкой мыши список свойств и выберите Свойства.
В диалоговом окне Редактор списка свойств поиска для добавления или удаления свойств поиска используйте сетку свойств:
- Чтобы удалить свойство документа, выберите заголовок строки слева от свойства и нажмите DEL.
Чтобы добавить свойство документа, выберите пустую строку внизу списка, справа от
*, и введите значения нового свойства.Описание этих значений см. в разделе Редактор списка свойств поиска. Сведения о том, как получить эти значения для свойств, определяемых Microsoft, см. в разделе Поиск GUID наборов свойств и целочисленных идентификаторов свойств для свойств поиска. Дополнительные сведения о свойствах, определенных независимыми поставщиками программного обеспечения (ISV), см. в документации по этим поставщикам.
Нажмите ОК.
Удалить список свойств поиска
Нельзя убрать список свойств из базы данных, пока он связан с любым полнотекстовым индексом.
Удалить список свойств поиска в Transact-SQL
Используйте инструкцию DROP SEARCH PROPERTY LIST .
Удалить список свойств поиска в SQL Server Management Studio
В обозревателе объектов разверните сервер.
Раскройте узел Базы данных, а затем раскройте базу данных.
Разверните узел Хранилище, затем узел Списки свойств поиска .
Кликните правой кнопкой мыши по списку свойств, которые хотите удалить, и выберите «Удалить».
Нажмите ОК.