Процесс уведомлений в Windows Search
Эта тема организована следующим образом:
- Обзор процесса уведомлений
- Операции сканирования
- Уведомления, управляемые индексатором
- Уведомления, управляемые поставщиком
- Уведомления о наборах строк
- Связанные темы
Обзор процесса уведомлений
Существует три подхода, с помощью которых можно индексировать данные из хранилища данных:
- Операции сканирования
- Уведомления, управляемые индексатором
- Уведомления, управляемые поставщиком
Преимущества каждого подхода описаны в следующих разделах.
Операции сканирования
Источники с поддержкой уведомлений выполняют добавочный обход контента при запуске, а затем полагаются на уведомления или явную команду для повторного обхода контента. Это происходит автоматически в Windows Vista и более поздних версиях. В операционных системах, предшествующих Windows Vista, необходимо настроить запланированное событие в планировщике задач , которое вызывает код для запуска обхода начальных страниц. Вам не нужно реализовывать какие-либо формы уведомлений. В качестве фонового процесса индексатор просматривает область обхода контента, ищет изменения и обновляет каталог. Этот вариант рекомендуется использовать практически во всех ситуациях.
Уведомления Indexer-Managed
С помощью уведомлений, управляемых индексатором, вы реализуете стратегию уведомлений, которая уведомляет индексатор об изменении данных в хранилище данных, а индексатор управляет отслеживанием уведомлений и индексированием данных. В этом случае компонент (который будет называться поставщиком уведомлений) отслеживает хранилище данных, собирает сведения об изменениях в хранилище, а затем периодически уведомляет индексатор со списком элементов, которым требуется индексация. Индексатор отвечает за восстановление и разрешение уведомлений в случае сбоя. Этот параметр, который можно считать стратегией "отправить и забыть", уменьшает частоту обхода индексатора.
Уведомления Provider-Managed
При использовании уведомлений, управляемых поставщиком, вы реализуете стратегию уведомлений, аналогичную второму подходу, за исключением того, что поставщик уведомлений должен отслеживать уведомления и отвечает за восстановление и разрешение уведомлений в случае сбоя. В этом случае поставщик уведомлений отслеживает хранилище данных, собирает и хранит сведения об изменениях в хранилище, периодически уведомляет индексатор со списком элементов, которые нуждаются в индексировании, получает обновления состояния от индексатора и повторно отправляет уведомления в случае сбоя.
Примечание
Этот вариант не рекомендуется, если вы не ожидаете, что добавочные обходы хранилища данных значительно усложнят производительность, а также требуется детальный контроль или анализ состояния индексирования.
Уведомления о наборах строк
В Windows 7 и более поздних версиях индексирование событий позволяет поставщикам получать уведомления о наборах строк. Поставщики, использующие индексирование событий, могут поддерживать свои наборы строк таким образом, чтобы это было похоже на поведение фактических расположений файловой системы. Библиотеки и поисковые запросы являются основными примерами расположений, не относящихся к файловой системе, в Windows 7. События индексатора предназначены для представлений библиотеки, а уведомления — для представлений файловых папок. Интерфейс IRowsetEvents должен быть реализован для получения уведомлений о событиях. Уровень данных является основным клиентом событий индексатора и решает, что делать с событиями в пользовательском интерфейсе представления элементов. Дополнительные сведения см. в разделе Индексирование приоритетов и события набора строк в Windows 7.
В Отличие от этого, в Windows Vista представления на основе запросов не имеют связанных событий, за исключением кэша оболочки для редактирования свойств файла. При выполнении поиска возвращаемые результаты будут статическими. Таким образом, если в систему добавляется другой документ, соответствующий условию поиска, представление не обновляется для включения нового добавления. Это стандартное поведение для статических веб-результатов. Однако статические результаты менее приемлемы при попытке предоставить представление на основе запросов в расположении хранилища. Пользователи ожидают, что содержимое индексатора является текущим. Дополнительные сведения см. в разделе Уведомление индекса изменений. Справочную документацию см. в разделе Интерфейсы уведомлений.
Связанные темы