Все, конечно, пользуются окошком мгновенного поиска в браузере, но не все замечают, что на некоторых сайтах кнопка выбора провайдера поиска меняет вид. Например, в Firefox на кнопке появляется «синее свечение». Это свечение означает, что просматриваемый сайт предоставляет возможность поиска и может быть добавлен в список поисковых плагинов. Фактически, любой сайт, на котором реализован полнотекстовый поиск, может стать таким провайдером для современных браузеров. Эта возможность реализована с использованием технологии OpenSearch.

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

1) Создать XML-файл с описанием параметров поиска — OpenSearch Description. Обычно этот файл называется OpenSearch.xml и находится в корне сайта. Содержимое файла примерно следующее:

<?xml version="1.0" encoding="utf-8" ?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
  <ShortName>Имя сайта</ShortName>                          1
  <Description>Описание сайта как провайдера поиска</Description>
  <InputEncoding>UTF-8</InputEncoding>
  <Image width="16" height="16" 
       type="image/png">http://site.com/favicon.png</Image> 2
  <Url type="text/html" method="get" 
      template="http://site.com/search?q={searchTerms}">    3
  </Url>
</OpenSearchDescription>

Как видно, файл содержит свойства, который внешние сервисы или программы (в частности браузеры) могут использовать для осуществления поиска. Важные моменты здесь:

  • 1 — Заданное имя сайта отображается в качестве имени поискового плагина браузерами.
  • 2 — Задается иконка поискового плагина.
  • 3 — Центральная часть файла. Здесь задается URL, на который нужно отправить запрос для получения результатов поиска. В реальном запросе плейсхолдер {searchTerms} заменяется на поисковой запрос пользователя.

2) Следующим пунктом нужно указать в разметке сайта, что ресурс поддерживает спецификацию OpenSearch. Для этого в раздел head нужно вставить элемент:

<link 
    rel="search" 
    type="application/opensearchdescription+xml" 
    title="Имя Сайта" href="/opensearch.xml" />

Здесь указывается

  • Адрес ранее созданного файла opensearch.xml
  • Заголовок (title), который используется браузером для формирования пункта меню добавления провайдера (например в Firefox: Добавить «Имя Сайта»)

Указанной информации вполне достаточно, чтобы поиск по сайту стал доступным из окошка мгновенного поиска. Однако, спецификация OpenSearch гораздо более обширна и поддерживает множество дополнительных возможностей. Можно дополнительно прочитать: