- Подписка на печатную версию:
-
- Подписка на электронную версию:
-
- Подшивки старых номеров журнала (печатные версии)
-
LXF139:Что за штука
Материал из Linuxformat.
Что за штука… OpenSearch?
- Марко Фиоретти представляет новый web-стандарт общения поисковых движков и клиентских приложений, повышающий эффективность поиска.
- Так что же за штука — OpenSearch?
- OpenSearch (http://opensearch.org) – это web-стандарт, определяющий простые, открытые форматы поисковых онлайн-запросов и способы представления результатов таких запросов.
- Пардон, а какие проблемы OpenSearch призван устранить?
- Разработчики OpenSearch считают, что для поисковых движков необходим стандартный способ «объявить» о своих возможностях, с целью извлечь из них максимум. Движки эти различны, и ни один из них не может в одиночку индексировать весь Интернет наилучшим образом.
- Но что конкретно делает OpenSearch?
- Обеспечивает прямое автоматическое общение поисковых движков и клиентов. Одна из интереснейших возможностей, создаваемых стандартом OpenSearch – он упрощает составление и использование программ, применяемых для поиска.
- А разве обычный браузер этого не делает?
- Нет. Работать с OpenSearch браузер может, но сам-то он по сути лишь немое окно, в котором вы как умеете объясняете поисковому движку, что надо найти. OpenSearch предназначен для автоматизации взаимодействия поисковых движков со всевозможными клиентами, включая простые скрипты оболочки (вы и сами можете писать такие для оптимизации онлайн-поиска). Ещё одна область применения OpenSearch – автоматическая публикация (или поиск) постоянно обновляемых результатов в виде так называемых «пользовательских каналов поиска».
- «Пользовательские каналы поиска» — это что?
- Вообразите блог, где собраны статьи на разные темы. OpenSearch упрощает написание модулей для отображения на панели сбоку от каждой статьи первых пяти результатов, которые вы могли бы получить в данный момент в неком поисковом движке, послав запрос на заголовок статьи. Это и называется пользовательский канал поиска.
- Я понял! А для web-разрабтчиков OpenSearch тоже полезен?
- Да, поскольку позволяет в реальном времени распространять выборки контента. Например, многие открытые системы управления контентом, типа WordPress или Drupal, оснащаются внутренними поисковыми движками. Применение OpenSearch для описания их интерфейсов позволяет приложениям сторонних производителей распоряжаться контентом соответствующих сайтов способами, которые облегчат нахождение этих сайтов, а следовательно, повысят их ценность.
- Каковы компоненты OpenSearch?
- Текущая версия (в стадии разработки) включает четыре компонента: описательные документы, синтаксис URL-шаблонов, элементы запросов и элементы реакции.
- И что описывают эти «описательные документы»?
- Это простые текстовые файлы, которые «объясняют» – в формате XML, который любая программы в состоянии загружать, анализировать и «понимать» – как работает интерфейс поискового движка, какого типа запросы он принимает и как эти запросы форматировать.
- Откуда же программы узнают о наличии таких описаний?
- Благодаря OpenSearch Autodiscovery. С помощью этой функции поисковые движки смогут заявить о своей совместимости с OpenSearch. На практике web-мастера и разработчики поисковых движков будут вводить на все свои страницы специальные ссылки. Вот эти-то ссылки и будут говорить браузерам и web-паукам: «Эй, здесь пользуются OpenSearch; пройди по ссылке – и узнаешь, как».
- А как OpenSearch «объясняет» правила составления поисковых запросов?
- В каждом описании содержатся параметрические URL-шаблоны стандартного синтаксиса, например <Url ... template=«http://examplecom?q={searchTerms}”/>. Это выражение означает, что для поиска сведений о Линусе Торвальдсе с помощью поисковой машины example.com нужно посетить web-страницу по адресу http://example.com?q=Linus+Torvalds.
- Что будет, если поисковый движок совместим с OpenSearch?
- Для переговоров поискового клиента с этим движком от вашего имени нужно лишь однажды загрузить файл описания и уяснить, какого рода URL’ы надо генерировать для организации поиска. Реальные описания, конечно, гораздо сложнее приведённого примера.
- Почему? Что ещё можно сюда приобщить?
- Есть также, например, элементы Attribution, Syndication Rights, Language и, поверите ли, Adult. Первые два касаются правовой информации, которую вы должны привести, встраивая результаты поиска в собственный web-сайт. Language перечисляет все языки, поддерживаемые поисковым движком. Описания OpenSearch включают как минимум один запрос-шаблон – клиенты могут его использовать для проверки, правильно ли работает связь с движком. Элементом Adult помечаются материалы, предназначенные только для взрослых.
- Что вы скажете об элементе Query?
- Элемент Query [запрос] используется в OpenSearch для описания специального поискового запроса, который может выполнить клиент. Он делается для показа клиентам всех возможностей поискового движка, а также чтобы подтвердить «усвоение» клиентом приведённого описания. Например, в стандарте указано, что элемент Query типа type=«request» можно использовать для воссоздания поискового запроса, генерировавшего текущие поисковые результаты. Если поместить в описание элемента Query нечто вроде <Query role=«request» searchTerms=«cat» />, это все равно что сказать «в индексе поискового движка наверняка есть что-то про кошек, и если запрос о кошках ничего не даст, то что-то явно не так».
- Элементы Response [реакции] применяются для добавления к поисковым результатам метаданных. Это сведения об общем количестве результатов, которые можно получить при поиске по заданным терминам; количество таких результатов на страницу и индекс первого элемента на текущей странице. Последний позволит оценить релевантность текущей страницы результатов.
- ОК, картина ясна. Ну, а просто автоматический поиск возможен?
- Да, но он значительно сложнее. Разработчикам клиентов пришлось бы писать много лишнего кода для выяснения того, что OpenSearch предоставляет в стандартной форме.
- А кто-нибудь этим уже пользуется?
- Конечно. OpenSearch встроен в поисковую строку Firefox, используется в Google Chrome и Internet Explorer. Перечень прочих поисковых клиентов имеется на сайте http://www.opensearch.org/Community/OpenSearch_enabled_search_clients. OpenSearch используют специализированные порталы вроде Last.fm. Этот протокол поддерживается Drupal; можно найти библиотеки для Perl, PHP и Python. Существует даже сайт, посвященный созданию модулей для Firefox: https://develoPer.mozilla.org/en/Creating_OpenSearch_plugins_for_Firefox.
- А кто занимается разработкой OpenSearch?
- Изначально OpenSearch был создан A9.com, компанией Amazon. Разработка и использование стандарта, проводимые сообществом со штаб-квартирой на http://opensearch.org, открыты для всех.
- В каком состоянии находится разработка OpenSearch?
- По данным сайта OpenSearch, спецификация находится на этапе Draft 3, и выпускать новую версию в обозримом будущем не планируется, хотя стандарт задуман как расширяемый.