Поделиться через


Использование протокола поиска

Поиск : протокол приложения — это расширяемое соглашение для вызова классического приложения поиска в Windows Vista с пакетом обновления 1 (SP1) и более поздних версий. Протокол был создан в Windows Vista с пакетом обновления 1 (SP1), чтобы предоставить Windows способ определения и вызова классического приложения поиска по умолчанию.

Синтаксис протокола предоставляет ряд параметров, полезных для выполнения распространенных поисковых запросов на рабочем столе, таких как введенные пользователем условия поиска или расположение, в котором был начато поиск. При поиске пользователей из одной из двух доступных точек поиска ( меню "Пуск " или проводника Windows) операционная система использует протокол поиска для запуска классического приложения поиска по умолчанию. Это делается путем добавления введенных пользователем терминов поиска в стандартный синтаксис протокола поиска и передачи этих сведений приложению, зарегистрированного в качестве приложения поиска по умолчанию.

Если другие классические приложения поиска не установлены, поиск, введенный в эти точки входа, запускает обозреватель поиска Windows. Однако сторонние разработчики могут создавать, устанавливать и регистрировать приложения для обработки протокола поиска и быть приложением поиска по умолчанию. Такие приложения должны поддерживать синтаксис протокола поиска и регистрироваться в компоненте "Программы по умолчанию", чтобы обеспечить простой опыт работы с Windows.

Если вы разрабатываете приложение, которое предназначено для использования или сборки определенного классического приложения поиска, не следует зависеть исключительно от протокола поиска. Так как многие приложения могут принадлежать поиску : протокол, нет никаких гарантий, что целевое классическое поисковое приложение будет принадлежать ему в любое время. Вместо этого следует использовать частный протокол поиска, определенный этим целевым приложением для поиска на рабочем столе. Это означает, что классические поисковые приложения, предназначенные для сторонних приложений, должны поддерживать поиск как протокол, так и собственный собственный собственный протокол поиска.

Примечание.

Поиск: протокол не заменяет закрытый протокол search-ms: Приложения по-прежнему могут использовать протокол search-ms: для запуска обозревателя поиска окон или автоматического запроса индексатора поиска Windows.

 

В этой статье рассматриваются следующие вопросы:

Синтаксис

Протокол поиска использует следующий стандартный синтаксис, закодированный URL-адресом:

search:parameter=value[&parameter=value]&

Синтаксис начинается с идентификации самого протокола (search:). Пары параметров и значений — это аргументы, передаваемые поисковой системе, как описано в следующей таблице, в которой показаны все возможные параметры синтаксиса протокола поиска.

Параметр Стоимость Описание
query Текст в кодировке URL-адреса Текст запроса, введенный пользователем.
inputlocale Любой допустимый идентификатор кода языка (LCID) LCID, определяющий язык ввода для запроса.
keywordlocale Любой допустимый LCID LCID, определяющий язык международной версии индексатора. Значение по умолчанию — 1033 (en-us).
крошка Оператор AQS Этот аргумент ограничивает область поиска. В Windows Vista протокол поиска поддерживает полные AQS, а также специальную реализацию для аргумента location . В Windows XP протокол поиска также поддерживает полные AQS, за исключением специальной реализации kind и store.
синтаксис NQS, AQS (не учитывает регистр) Синтаксис запроса, используемый для поиска индекса: синтаксис естественного запроса или расширенный синтаксис запросов (AQS). AQS — это значение по умолчанию и всегда предполагается синтаксический анализ и поддержка.
stackedby Любое допустимое свойство из системы свойств Свойство, указывающее столбец для стека результатов.
subquery Полный путь для сохраненного файла поиска (*.search-ms) Результаты вложенных запросов используются в качестве источника запроса. То есть термины запроса ищутся в результатах вложенных запросов.
displayname Строка, закодированная по URL-адресу Имя текущего поиска.

 

Windows Vista с пакетом обновления 1 (SP1) используется протокол поиска: протокол

Windows Vista с пакетом обновления 1 (SP1) имеет несколько точек входа, из которых вызывается поиск: протокол. Эти точки входа описаны ниже, а также общий синтаксис, связанный с каждым.

Точка входа протокола поиска Расположение Вызывается запрос
Поиск везде Меню "Пуск" search:query=<Search Term>
Поиск везде Проводник search:query=Search Term&crumb=<location:<LOCATION>>
Клавиша Windows+F В любом месте искать:
CTRL+F Проводник search:query=Search Term&crumb=<location:<LOCATION>>
F3 Меню "Пуск" искать:
F3 Проводник search:query=Search Term&crumb=<location:<LOCATION>>

 

Точки входа протокола поиска Windows Vista с пакетом обновления 1 (SP1) не используют все возможные параметры в протоколе поиска. Приложения, которые связаны только с обработкой вызовов протокола поиска из Windows Vista с пакетом обновления 1 (SP1), могут использовать следующую таблицу в качестве руководства к минимальному их реализации.

Параметр Используется Windows? Как Windows Vista с пакетом обновления 1 (SP1) использует его при вызове поиска:
query Да Текст запроса, введенный пользователем.
крошка Да Crumb использует location аргумент, чтобы указать, откуда поступил запрос.
subquery Да Результаты аргумента Subquery используются в качестве области элементов для поиска. Это обычно используется, если пользователь использует файл .search-ms для поиска, а затем вызывается классическое приложение поиска по умолчанию из этого поиска.
inputlocale No В настоящее время не используется.
keywordlocale No В настоящее время не используется.
синтаксис No В настоящее время не используется.
stackedby No В настоящее время не используется.
displayname No В настоящее время не используется.

 

Примеры

Если пользователь вводит "Майкрософт" в меню "Пуск " и нажимает кнопку "Поиск везде", вызывается результирующий вызов протокола поиска:

search:query=microsoft&

Если пользователь вводит "Сиэтл" в проводнике Windows в C:\MyFolder, а затем щелкает поиск везде, выполняется следующий вызов, используя escape-символы для ":" и "\".

search:query=seattle&crumb=location:C%3A%5CMyFolder

Регистрация приложения, обрабатывающего протокол

Так как несколько приложений могут претендовать на протокол поиска, необходимо зарегистрировать приложение с помощью функции "Программы по умолчанию" во время установки, чтобы пользователь мог настроить значение по умолчанию проще. Помимо процедур установки, которые обычно практикуются в Windows XP, приложение на основе Windows Vista должно зарегистрировать с помощью функции программ по умолчанию, чтобы приложение и пользователи могли легко настроить значения по умолчанию.

После установки необходимых двоичных файлов на компьютере пользователя подпрограмма установки должна выполнить следующие общие задачи:

  1. Запись идентификаторов ProgID в HKEY_LOCAL_MACHINE, как описано ниже. Обратите внимание, что приложения должны создавать идентификаторы ProgID для конкретного приложения для протокола поиска.
  2. Сопоставление протокола поиска на уровне компьютера.
  3. Зарегистрируйте приложение с помощью программ по умолчанию, как описано в разделе "Регистрация приложения для использования с программами по умолчанию" в качестве претендента на протокол поиска.

Записи реестра

Ниже приведены примеры обязательных записей реестра для вымышленного классического поискового приложения Contoso Search.

HKEY_LOCAL_MACHINE
   SOFTWARE
      Classes
         contoso-search
            URL Protocol = ""
HKEY_LOCAL_MACHINE
   SOFTWARE
      Classes
         contoso-search
            DefaultIcon
               (Default) = %ProgramFiles%\Contoso\Search\contososearch.exe,-7
HKEY_LOCAL_MACHINE
   SOFTWARE
      Classes
         contoso-search
            shell
               open
                  command
                     (Default) = %ProgramFiles%\Contoso\Search\contososearch.exe %1
HKEY_LOCAL_MACHINE
   SOFTWARE
      RegisteredApplications
         Contoso Search = "Software\\Contoso\\Search\\Capabilities"
HKEY_LOCAL_MACHINE
   SOFTWARE
      Contoso
         Search
            Capabilities
               ApplicationName = "Contoso Search Test App"
               ApplicationDescription = "Contoso search is a great new desktop search application"
HKEY_LOCAL_MACHINE
   SOFTWARE
      Contoso
         Search
            Capabilities
               UrlAssociations
                  search = "contoso-search"

Синтаксис расширенных запросов

Программы по умолчанию