Опубликован: 04.07.2012 | Уровень: специалист | Доступ: платный
Лекция 14:

Синдикация и аггрегирование веб-контента. Улучшение usabilty веб-контента

< Лекция 13 || Лекция 14: 123 || Лекция 15 >

Ускорители поиска. Спецификация OpenSearch.

В Internet Explorer 8 существенно улучшены в плане удобства возможности поиска благодаря следующим функциям:

  • Подсказки поиска и поставщики поиска. Пользователи могут ввести нужный поисковый запрос намного быстрее. Поддерживается формат JSON и расширенный формат OpenSearch XML.
  • Визуальные подсказки поиска. Интегрированный поиск рисунков и другого наглядного содержимого.
  • Улучшенный пользовательский интерфейс. С помощью раскрывающегося списка быстрого выбора и контекстного меню ускорителей можно легко выбирать установленные поставщики поиска и переключаться между ними. Кроме того, с помощью поиска в журнале, можно автоматически находить недавно просмотренные веб-страницы, не закрывая окна поиска.
Использование подсказок поиска.

увеличить изображение
Рис. 21.5. Использование подсказок поиска.

Таким образом, пользователи могут выполнять поиск непосредственно из Internet Explorer, не переходя на сайты поисковых систем. Поставщик поиска по умолчанию также используется для выполнения поиска из адресной строки. Чтобы добавить поставщика поиска в IE 8, нужно позволить пользователям подключить ваш веб-сайт в качестве поставщика поиска в поле поиска. Для этого:

  • создается файл описания OpenSearch для поставщика поиска;
  • файл описания размещается на веб-сайте, чтобы пользователи смогли установить себе поставщика поиска.

Файл описания OpenSearch

Файлы описания OpenSearch - это небольшие XML-файлы, описывающие поставщика поиска для IE 8.

Следующий образец файла описания OpenSearch определяет тип поисковых услуг, которые будут предложены.

<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" 
      xmlns:ie="http://schemas.microsoft.com/Search/2008/">
  <ShortName>My Custom Search</ShortName>
  <Image height="16" width="16" 
    type="image/icon">http://example.com/example.ico</Image>
  <Url type="text/html" 
    template="http://example.com/search.aspx?q={searchTerms}&source=IE"/> 
  <Url type="application/x-suggestions+json" 
    template="http://suggestions.example.com/search.aspx?q={searchTerms}"/>
  <Url type="application/x-suggestions+xml" 
    template="http://suggestions.example.com/search.aspx?q={searchTerms}"/>
  <ie:PreviewUrl type="text/html" 
    template="http://suggestions.example.com/search.aspx?q={searchTerms}"/>
</OpenSearchDescription>

Файлы описания OpenSearch должны содержать имя поставщика поиска и URL-адрес поиска. Без этих элементов установка поставщика поиска в IE 8 невозможна. Все URL-адреса поиска должны содержать элемент {searchTerms} в строке запроса. Когда браузер IE 8 обращается к этому поставщику для получения результатов поиска, элемент {searchTerms} заменяется поисковым запросом, введенным пользователем в поле быстрого поиска.

Добавление подсказок поиска в файлы описания OpenSearch

В IE 8 поддерживается отображение подсказок поиска. С помощью вариантов поиска можно быстро предлагать пользователям более эффективные поисковые запросы. Чтобы предоставить пользователям подсказки поиска в формате JSON и XML, файл описания добавляются следующие элементы:

<Url type="application/x-suggestions+json"
   template="http://suggestions.example.com/search.aspx?q={searchTerms}"/>

<Url type="application/x-suggestions+xml" 
  template="http://suggestions.example.com/search.aspx?q={searchTerms}"/>

Предварительный просмотр результатов поиска

Все установленные поставщики поиска автоматически преобразуются в ускорители. Ускорители поддерживают предварительный просмотр, что дает возможность показать пользователю предварительные результаты поиска. Для этого в файл описания OpenSearch добавляется элемент PreviewUrl, как показано ниже.

<ie:PreviewUrl type="text/html" 
  template="http://suggestions.example.com/search.aspx?q={searchTerms}/>

Если добавить этот элемент в файл описания OpenSearch то, можно будет предоставить пользователям небольшое окно с результатами поиска. Когда пользователь выделит текст на веб-странице, и щелкнув значок "Ускорители" и наведет указатель мыши на наименование поставщика поиска, откроется окно просмотра (размером 320 x 240 пикселей) с результатами поиска.

Коллекция веб-фрагментов, ускорителей и поставщиков визуального поиска доступна на веб-сайте: http://www.ieaddons.com/ru/.

Спецификация OpenSearch

Спецификация OpenSearch была разработана подразделением A9 компании Amazon.com и первая версия OpenSearch 1.0 была представлена Джеффом Безосом (Jeff Bezos) на конференции Web 2.0 в марте 2005 г. Черновик спецификация OpenSearch 1.1 был опубликован в период с сентября по декабрь 2005 г.

Спецификация OpenSearch включает в себя:

  • Файлы описания OpenSearch: XML файлы, которые идентифицируют и описывают поисковые сервисы.
  • OpenSearch Query Syntax: описывает каким образом можно получить результаты поиска
  • OpenSearch RSSOpenSearch 1.0) или OpenSearch ResponseOpenSearch 1.1): описывает формат представления результатов.
  • OpenSearch Aggregators: сайты, которые могут отображать результаты OpenSearch.
  • OpenSearch "Auto-discovery": описывает способы сообщения о том, что имеется ссылка на поисковый модуль расширения (plugin) для пользователя, или размещения соответствующей ссылки в заголовке HTML страницы.

В спецификации версии 1.0 допустим только один ответ в RSS формате; напротив, версия 1.1 предусматривает поддержку множественных запросов в любых форматах. RSS и Atom лишь формально поддерживаются OpenSearch агрегаторами, более приемлемыми форматами считаются, такие как, например HTML.

Элементы файла описания OpenSearch

Название элемента Назначение Атрибуты Доп. информация
OpenSearchDescription Корневой узел документа xmlns="http://a9.com/-/spec/opensearch/1.1/"
ShortName Краткое название поисковой службы. Длина не должна превышать 16 символов. Не должны использоваться элементы разметки. В файле может быть только один элемент.
Description Краткое текстовое описание поисковой службы Длина не должна превышать 1024 символов. Не должны использоваться элементы разметки. В файле может быть только один элемент.
Url Описывает интерфейс с помощью которого клиент может делать запросы ко внешним источникам
  • template - шаблон URL, в соответствии с синтаксисом OpenSearch URL. Это обязательный атрибут.
  • type - MIME тип описываемого ресурса. Это обязательный атрибут.
  • rel - роль ресурса по отношению к документу. Должен содержать список разделенных пробелами допустимых значений. Значение по-умолчанию: "results" Это необязательный атрибут.
  • indexOffset - индекс первого результата в списке поиска. Значение должно быть целым. Значение по умолчанию - "1". Необязательный атрибут.
  • pageOffset - номер страницы для первого множества результатов поиска. Значение по умолчанию - "1". Необязательный атрибут. Может присутствовать один или более раз.
Атрибут rel может принимать следующие значения:
  • "results" (по умолчанию) - представляет запрос результатов поиска в нужном формате.
  • "suggestions" - представляет запрос подсказок поиска в нужном формате.
  • "self" - представляет канонический URL текущего документа.
  • "collection" - представляет запрос на множество ресурсов.
Contact Содержит e-mail составителя документа с описанием провайдера поиска. Элемент не является обязательным.
Tags Содержит множество слов, используемых в качестве ключевых слов, идентифицирующих и категоризующих поисковый контент.

Тэги должны быть отдельными словами, заключенными в кавычки (' ').

Значение элемента должно содержать не более 256 символов текста. Запрещено включать HTML и другую разметку.

Элемент не является обязательным.

LongName Содержит расширенный заголовок, идентифицирующий поисковый сервис.

Клиенты могут использовать элемент ShortName если данный элемент недоступен. Значение элемента должно содержать не более 48 символов текста. Запрещено включать HTML и другую разметку.

Элемент не является обязательным. Элемент не является обязательным.

Image Содержит URL, задающий размещение картинки, ассоциированной с содержимым поискового контента. height (необязательный)- высота в пикселах width (необязательный) - ширина в пикселах type (необязательный) - MIME тип изображения.

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

Рекомендуется квадратная форма картинки. Предпочтение отдается изображениям размером 16x16 типа "image/x-icon" или "image/vnd.microsoft.icon" или размером 64x64 типа "image/jpeg" или "image/png".

Элемент не является обязательным.

Query Определяет поисковый запрос клиента.

OpenSearch документ должен содержать как минимум один элемент Query с атрибутом role="example", что поразумевает возвращение клиенту презультатов поиска.

Например, <Query role="example" searchTerms="cat" />

Поисковый клиент может использовть такой запрос для проверки корректности работы поиской службы.

Элемент не является обязательным.

Developer Содержит имя или идентификатор разработчика данного документа. Значение элемента должно содержать не более 64 символов текста. Запрещено включать HTML и другую разметку.

Элемент не является обязательным.

Attribution Содержит список всех источников которые могут привлекаться для формирования поискового потока. Значение элемента должно содержать не более 256 символов текста. Запрещено включать HTML и другую разметку.

Элемент не является обязательным.

SyndicationRight Содержит значение, указывающее на степень доступности результатов поиска для запросов, отображения и распространения.

Значение может быть одной из строк (без учета регистра):

  • "open" - клиент может запрашивать результаты поиска, показывать их пользователям, пересылать их другим клиентам.
  • "limited" - клиент может запрашивать результаты поиска, показывать их пользователям, но не может пересылать их другим клиентам.
  • "private" - клиент может запрашивать результаты поиска, но не может показывать их пользователям и не может пересылать их другим клиентам.
  • "closed" - клиент не может запрашивать результаты поиска.

По умолчанию: "open"

Элемент не является обязательным.

AdultContent Содержит булевское значение "true", если результаты поиска могут содержать материалы предназначенные только для взрослых.

Значения: варианты "false", "FALSE", "0", "no" или "NO" интерпретируются как FALSE; все остальные варианты интерпретируются как TRUE.

По умолчанию: "false".

Элемент не является обязательным.

Language Содержит строку, указывающую на поддержку поисковой службой выдачи результатов на заданном языке

Документ с OpenSearch описанием должен включать данный элемент для каждого поддерживаемого языка.

Если поисковая служба поддерживает любой язык, то значением элемента является "*".

Шаблонный параметр "language" в OpenSearch URL может использоваться для выбора клиентом языков из числа доступных.

Значение должно соответствовать правилам идентификации языков в XML 1.0 (RFC 3066).

По умолчанию: "*".

Элемент не является обязательным.

InputEncoding Значением является строка, указывающая на специфическую кодировку, поддерживаемую поисковой службой для запросов клиента

Документ с OpenSearch описанием должен включать данный элемент для каждой кодировки.

Шаблонный параметр "language" в OpenSearch URL может использоваться для указания клиентом кодировки своего поискового запроса.

Значение должно соответствовать правилам кодировки в XML 1.0. По умолчанию: "UTF-8".

Элемент не является обязательным.

OutputEncoding Значением является строка, указывающая на специфическую кодировку, поддерживаемую поисковой службой для ответов клиентам

Документ с OpenSearch описанием должен включать данный элемент для каждой кодировки.

Шаблонный параметр "language" в OpenSearch URL может использоваться для выбора клиентом кодировки ответа на свой поисковый запрос.

Значение должно соответствовать правилам кодировки в XML 1.0. По умолчанию: "UTF-8".

Элемент не является обязательным.

Пример документа с OpenSearch описанием :

<?xml version="1.0" encoding="UTF-8"?>

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">

   <ShortName>Web Search</ShortName>

   <Description>Use Example.com to search the Web.</Description>

   <Tags>example web</Tags>

   <Contact>admin@example.com</Contact>

   <Url type="application/atom+xml"
        template="http://example.com/?q={searchTerms}&amp;pw={startPage?}&amp;format=atom"/>

   <Url type="application/rss+xml"
        template="http://example.com/?q={searchTerms}&amp;pw={startPage?}&amp;format=rss"/>

   <Url type="text/html" 
        template="http://example.com/?q={searchTerms}&amp;pw={startPage?}"/>

   <LongName>Example.com Web Search</LongName>

   <Image height="64" width="64" type="image/png">http://example.com/websearch.png</Image>

   <Image height="16" width="16" 
type="image/vnd.microsoft.icon">http://example.com/websearch.ico</Image>

   <Query role="example" searchTerms="cat" />

   <Developer>Example.com Development Team</Developer>

   <Attribution>
     Search data Copyright 2005, Example.com, Inc., All Rights Reserved
   </Attribution>

   <SyndicationRight>open</SyndicationRight>

   <AdultContent>false</AdultContent>

   <Language>en-us</Language>

   <OutputEncoding>UTF-8</OutputEncoding>

   <InputEncoding>UTF-8</InputEncoding>

 </OpenSearchDescription>

Синтаксис для шаблона OpenSearch URL

Формат шаблона OpenSearch URL может быть использован для параметризованной формы представления URL в запросе к поисковому сервису.

Поисковый клиент в процессе обработки шаблона попытается заменить каждое вхождение шаблонизированного параметра, представляемого в форме {имя} и значение которого определяется во время выполнения запроса.

По умолчанию, имена параметров рассматриваются как часть пространства имен для шаблонов OpenSearch 1.1, а определения для основных параметров поиска приводятся в спецификации. Однако поисковые службы и поисковые клиенты могут устанавливать новые имена параметров, опираясь на механизм расширяемости в рамках соглашения о префиксах пространств имен XML.

Примеры.

Шаблон поискового URL, содержащего шаблонизированный параметр:

http://example.com/search?q={searchTerms}

Шаблон поискового URL, содержащего необязательный шаблонизированный параметр:

http://example.com/feed/{startPage?}

Пример шаблона поискового URL, содержащего необязательный шаблонизированный параметр из расширенного пространства имен в контексте элемента Url:

<Url type="application/rss+xml"
  xmlns:example="http://example.com/opensearchextensions/1.0/"
  template="http://example.com?q={searchTerms}&amp;c={example:color?}"/>

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

Обязательный параметр отличает от необязательно только наличием знака ? после локального имени:

{searchTerms} - обязательный параметр.

{startPage?} - необязательный параметр.

Параметры OpenSearch 1.1

Параметр Назначение и ограничения
searchTerms Заменяется ключевыми словами из запроса клиента
count Заменяется желаемым числом результатов поиска на каждой странице
startIndex Заменяется индексом первого поискового результата
startPage Заменяется номером страницы для множества поисковых результатов
language Заменяется желаемым языком представления результатов поиска для клиента
inputEncoding Заменяется значением кодировки, используемой клиентом для формирования своего запроса
outputEncoding Заменяется желаемой кодировкой представления результатов поиска для клиента

Источники

  1. Библиотека MSDN (http://msdn.microsoft.com/ru-ru/library/default.aspx)
  2. OpenSearch specification 1.1. (http://www.opensearch.org/Specifications/OpenSearch/1.1)
< Лекция 13 || Лекция 14: 123 || Лекция 15 >
Сергей Крупко
Сергей Крупко

Добрый день.

Я сейчас прохожу курс  повышения квалификации  - "Профессиональное веб-программирование". Мне нужно получить диплом по этому курсу. Я так полагаю нужно его оплатить чтобы получить диплом о повышении квалификации. Как мне оплатить этот курс?

 

Галина Башкирова
Галина Башкирова

Здравствуйте, недавно закончила курс по проф веб программиованию, мне прислали методические указания с примерами тем, однако темы там для специальности 

Системный администратор информационно-коммуникационных» систем.
Мне нужно самой найти тему? или делать по высланным темам