Обзор Windows Search
Поиск Windows — это платформа поиска на рабочем столе с возможностью мгновенного поиска для наиболее распространенных типов файлов и типов данных, а сторонние разработчики могут расширить эти возможности на новые типы файлов и типы данных.
Этот раздел организован следующим образом:
- Введение
- Технические предварительные требования
- Документация SDK для поиска в Windows
- История поиска Windows
- Дополнительные ресурсы
- Связанные статьи
Введение
Поиск Windows — это стандартный компонент Windows 7 и Windows Vista и включен по умолчанию. Поиск Windows заменяет windows Desktop Search (WDS), который был доступен как надстройка для Windows XP и Windows Server 2003.
Поиск Windows состоит из трех компонентов:
- Служба поиска Windows (WSS)
- Платформа разработки
- Пользовательский интерфейс
Служба Windows Search
WSS упорядочивает извлеченные характеристики из коллекции документов. Протокол поиска Windows позволяет клиенту взаимодействовать с сервером, на котором размещается WSS, как выдавать запросы, так и разрешать администратору управлять сервером индексирования. При обработке файлов WSS анализирует набор документов, извлекает полезную информацию, а затем упорядочивает извлеченные сведения, чтобы свойства этих документов могли быть эффективно возвращены в ответ на запросы.
Коллекция документов, которые можно запрашивать, состоит из каталога, который является самой высокоуровневой единицей организации в Службе поиска Windows. Каталог представляет набор индексированных документов, которые можно запрашивать. Каталог состоит из таблицы свойств, в которой текст или значение и соответствующее местоположение (языковой стандарт) хранятся в столбцах таблицы. Каждая строка таблицы соответствует отдельному документу в области каталога, а каждый столбец таблицы соответствует свойству. Каталог может содержать инвертированные индексы (для быстрого сопоставления слов) и кэш свойств (для быстрого извлечения значений свойств).
Процесс индексатора реализуется как служба Windows, запущенная в учетной записи LocalSystem, и всегда выполняется для всех пользователей (даже если пользователь не вошел в систему), что позволяет выполнить поиск Windows следующим образом:
- Поддерживайте один индекс, разделяемый всеми пользователями.
- Сохраняйте ограничения безопасности на доступ к содержимому.
- Обработка удаленных запросов с клиентских компьютеров в сети.
Служба предназначена для защиты пользовательского интерфейса и производительности системы при индексировании. Следующие условия приводят к тому, что служба регулирует или приостанавливает индексирование:
- Высокая загрузка ЦП процессами, не связанными с поиском.
- Высокая скорость ввода-вывода системы, включая операции чтения и записи файлов, операции с файлом подкачки, операции ввода-вывода кэша файлов и сопоставленные операции ввода-вывода.
- Низкая доступность памяти.
- Низкая время работы батареи.
- Низкое дисковое пространство на диске, в которой хранится индекс.
Платформа разработки
Предпочтительным способом доступа к API поиска и созданию приложений поиска Windows является источник данных оболочки. Источник данных оболочки является компонентом, который используется для расширения пространства имен оболочки и предоставления элементов в хранилище данных. Хранилище данных — это репозиторий данных. Хранилище данных можно представить модели программирования Оболочки в роли контейнера, который использует источник данных Оболочки. Элементы в хранилище данных можно индексировать системой поиска Windows с помощью обработчика протокола.
Например, ISearchFolderItemFactory — это компонент, который может создавать экземпляры источника данных папки поиска, который является своего рода "виртуальным" источником данных, предоставляемым оболочкой, которая может выполнять запросы по другим источникам данных в пространстве имен оболочки и перечислять результаты. Это можно сделать с помощью индексатора или вручную, перечисляя и проверяя элементы в указанных областях. Этот интерфейс позволяет настроить параметры поиска с помощью методов, создающих и изменяющих папки поиска. Если методы этого интерфейса не вызываются, вместо этого используются значения по умолчанию.
Доступ к возможности поиска Windows косвенно через модель данных оболочки предпочтительнее, так как он предоставляет доступ к полнофункционалным функциям оболочки на уровне модели данных оболочки. Например, можно задать область поиска библиотеки (которая является функцией, доступной в Windows 7 и более поздних версиях), чтобы использовать папки библиотеки в качестве области запроса. Затем поиск Windows объединяет результаты поиска из этих расположений, если они находятся в разных индексах (если папки находятся на разных компьютерах). Слой данных Оболочки также создает более полное представление свойств элементов, синтезируя некоторые значения свойств. Он также предоставляет доступ к функциям поиска для хранилищ данных, которые не индексируются поиском Windows. Например, можно искать устройства хранения данных с интерфейсом универсальной последовательной шины (USB), портативные устройства, использующие протокол MTP, или сервер протокола FTP через данные из оболочки, предоставляющие доступ к этим системам хранения. Это обеспечивает более эффективное взаимодействие с пользователем.
Поиск Windows содержит кэш значений свойств, используемых в реализации службы поиска Windows (WSS). Эти значения свойств можно программно запрашивать с помощью поставщика OLE DB поиска Windows или через ISearchFolderItemFactory, который представляет элементы в результатах поиска и представлениях на основе запросов. Затем поиск Windows собирает и сохраняет свойства, создаваемые обработчиками фильтров или обработчиками свойств, когда элемент, например документ Word, индексируется. Это хранилище удаляется и перестраивается при перестроении индекса.
Сторонние разработчики могут создавать приложения, которые используют данные в индексе с помощью программных запросов, и могут расширить данные в индексе для пользовательских типов файлов и элементов, которые будут индексироваться в Службе поиска Windows. Если вы хотите отобразить результаты запроса в проводнике Windows, необходимо реализовать источник данных оболочки, прежде чем создать обработчик протокола для расширения индекса. Однако если все запросы являются программными (например, с помощью OLE DB) и интерпретируются кодом приложения, а не оболочкой, пространство имен оболочки по-прежнему предпочтительнее, но не требуется.
Обработчик протокола требуется для Windows для получения сведений о содержимом файла, таких как элементы в базах данных или пользовательских типах файлов. Хотя поиск Windows может индексировать имя и свойства файла, Windows не имеет сведений о содержимом файла. В результате такие элементы нельзя индексировать или отображать в оболочке Windows. Реализуя пользовательский обработчик протокола, вы можете открыть эти элементы. Список обработчиков, определенных в соответствии с целью разработчика, которой вы хотите достичь, см. в разделе "Обзор обработчиков" в Windows Search как платформе разработки.
Примечание.
Источник данных Shell иногда называется расширением пространства имен Shell. Иногда обработчик называется расширением оболочки или обработчиком расширений оболочки.
Пользовательский интерфейс
В Windows Vista и более поздних версиях поиск Windows интегрирован во все окна проводника Windows для мгновенного доступа к поиску. Это позволяет пользователям быстро искать файлы и элементы по имени файла, свойствам и полнотекстового содержимого. Результаты также можно отфильтровать дальше, чтобы уточнить поиск. Ниже приведены некоторые другие функции поиска Windows:
- Мгновенное поле поиска в каждом окне позволяет мгновенно фильтровать все элементы в представлении. Поля мгновенного поиска отображаются в меню для поиска программ или файлов и в правом верхнем углу всех окон проводника Windows, чтобы отфильтровать результаты. Мгновенный поиск также интегрирован в некоторые другие функции Windows, такие как Медиаплеер Windows, для поиска связанных файлов.
- Документы можно пометить ключевыми словами, чтобы сгруппировать их по пользовательским критериям, определенным пользователем. Теги — это элементы метаданных, назначенные пользователем или приложениями, чтобы упростить поиск файлов на основе ключевых слов, которые могут не находиться в имени элемента или содержимом. Например, набор изображений может быть помечен как "Отпуск в Аризоне 2009", чтобы их можно было быстро найти позже, используя поиск любого из включенных слов.
- Расширенные заголовки столбцов в представлениях проводника Windows позволяют сортировать и группировать документы по-разному. Например, файлы можно сортировать по имени, дате, типу, размеру и тегам. Документы также можно сгруппировать в соответствии с любым из этих свойств, и каждая группа может быть отфильтрована (скрыта или отображена) по мере необходимости.
- Документы можно стекать в соответствии с именем, датой изменения, типом, размером и тегами. Стэки включают все документы, имеющие указанное свойство и находящиеся в любой из подкаталогов выбранного каталога.
- Поиски можно сохранить (чтобы получить позже), нажав кнопку "Сохранить поиск " в области поиска в проводнике Windows. Результаты будут динамически обновляться, основываясь на исходных критериях, при открытии сохраненного поиска. Инструкции см. в разделе "Сохранение результатов поиска".
- Обработчики предварительного просмотра и обработчики эскизов позволяют пользователям просматривать документы в проводнике Windows, не открывая приложение, созданное им.
Технические предварительные требования
Прежде чем приступить к чтению документации по пакету SDK для Поиска Windows, необходимо иметь базовое представление о следующих понятиях:
- Как реализовать источник данных оболочечного типа.
- Как реализовать обработчик.
- Как работать в родном коде.
Источник данных Shell — это компонент, используемый для расширения пространства имен Shell и предоставления доступа к элементам в хранилище данных. В прошлом источник данных Shell назывался расширением пространства имен оболочки. Обработчик — это объект модели COM-компонента, предоставляющий функциональные возможности для предмета Shell. Список обработчиков, определенных сценарием разработчика, которого вы пытаетесь достичь, см. в разделе "Обзор обработчиков" в поисковой системе Windows как платформе для разработки.
Дополнительные сведения о сборке совместимости пакета SDK для поиска Windows, предназначенной для работы с COM-объектами, которые используются поиском Windows и другими программами на управляемом коде, см. в статье "Использование управляемого кода с данными оболочки и поиском Windows". Однако обратите внимание, что фильтры, обработчики свойств и обработчики протоколов должны быть написаны в машинном коде. Это связано с потенциальными проблемами с согласованностью версий в среде общего языкового исполнения (CLR) в процессе выполнения, где работают несколько надстроек. Разработчики, которые новички в C++, могут приступить к работе с Центром разработчиков Visual C++ и Началом работы по разработке для Windows.
Скачивание и содержимое пакета SDK
Помимо удовлетворения перечисленных технических предварительных требований, необходимо также скачать пакет SDK для Windows, чтобы получить библиотеки поиска Windows. Примеры кода поиска Windows содержат наглядные примеры кода и сборку для взаимодействия при разработке с помощью управляемого кода.
Документация по пакету SDK для Поиска Windows
Содержимое документации по пакету SDK для Поиска Windows выглядит следующим образом:
Windows Search как платформа разработки
Описывает основные сценарии разработки в Поиске Windows. Предоставляет список обработчиков, которые определяются сценарием разработки, который вы пытаетесь реализовать, рекомендации по установке надстроек и заметки о реализации.
Руководство разработчика поиска Windows
Предоставляет объяснения по управлению индексом, запросу индекса программным способом, расширению индекса и расширению языковых ресурсов.
-
Документирует следующие категории интерфейсов поиска Windows: обработчики протоколов, запросы, область обхода, надстройки данных, управление индексами и уведомления. Справочная документация также содержит константы и перечисления, структуры, сопоставления свойств и сохраненный формат файла поиска.
-
Описание доступных примеров кода API поиска.
-
Описывает поддержку федерации поиска Windows 7 для удаленных хранилищ данных с помощью технологий OpenSearch, позволяющих пользователям получать доступ к удаленным данным и взаимодействовать с ними в Проводнике Windows.
-
Перечисляет технологии, связанные с поиском Windows: поиск в корпоративной среде, поиск в SharePoint Enterprise и устаревшие приложения, такие как Windows Desktop Search 2.x и набор SDK для платформы: служба индексирования.
-
Определяет основные термины, используемые в технологиях поиска Windows и оболочки.
История поиска Windows
Поиск Windows заменяет windows Desktop Search (WDS), который был доступен как надстройка для Windows XP и Windows Server 2003. WDS заменил устаревшую службу индексирования из предыдущих версий Windows улучшениями производительности, удобства использования и расширяемости. Новая платформа разработки поддерживает требования, которые обеспечивают более безопасную и стабильную систему. Хотя новая платформа запросов несовместима с поиском компьютеров Microsoft Windows (WDS) 2.x, фильтры и обработчики протоколов, написанные для предыдущих версий WDS, можно обновить для работы с Поиском Windows. Поиск Windows также поддерживает новую систему свойств. Сведения о фильтрах, обработчиках свойств и обработчиках протоколов см. в разделе "Расширение индекса".
Поиск Windows встроен в Windows Vista и более поздних версий и доступен в качестве распространяемого обновления для WDS 2.x для поддержки следующих операционных систем:
- 32-разрядные версии Windows XP с пакетом обновления 2 (SP2).
- Все версии Windows XP на основе x64.
- Windows Server 2003 с пакетом обновления 1 (SP1) и более поздними версиями.
- Все версии windows Server 2003 на основе x64.
Для запуска приложений, написанных для поиска Windows, должны быть установлены системы под управлением этих операционных систем.
Дополнительные ресурсы
- Сведения о создании источника данных оболочки см. в разделе "Реализация базовых интерфейсов объектов папок".
- Дополнительные сведения об ISearchFolderItemFactory и источнике данных папки базы данных см. в описании константы STR_PARSE_WITH_PROPERTIES в ключах строки контекста привязки. См. также массивы ассоциаций и IPropertySystem::GetPropertyDescriptionListFromString.
- Дополнительные сведения о OLE DB см. в разделе "Обзор программирования OLE DB". Сведения о поставщике данных платформы .NET Framework для OLE DB см. документацию пространства имен System.Data.OleDb.
- Общие сведения о обработчиках типов файлов (также известных как обработчики расширений оболочки и обработчики поиска) см. в разделе "Поиск Windows как платформа разработки".
- Доски объявлений по технологиям поиска, поддерживаемые сообществом, см. на Microsoft Q&A.
- Связанные примеры кода см. в примерах кода Windows Search.
Связанные темы