
- •21. Практическое занятие: Применение поисковых технологий в Интернет-магазине
- •21.1. Архитектура
- •21.2. Поисковые системы и по, поддерживающие OpenSearch
- •21.2.1. Пример поиска на Википедии
- •21.3. Создание поисковой страницы
- •21.4. Создание файла описания поискового расширения
- •21.4.1. Структура и формат файла описания OpenSearch
- •21.4.2. Создание файла описания поискового расширения для Интернет-магазина
- •21.5. Добавление поставщика поиска на страницу сайта
- •21.6. Реализация подсказок
- •21.6.1. Описание создания json подсказок
- •21.6.2. Использование формата результатов поиска в формате xml
- •21.6.3. Добавление в поисковое расширение Интернет-магазина визуальных подсказок
- •21.7. Ключевые термины
- •21.8. Краткие итоги
21.4.2. Создание файла описания поискового расширения для Интернет-магазина
Добавим в корень проекта файл Search.xml следующей структуры:
<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>Adventure Works</ShortName>
<Url type="text/html"
template="http://localhost:31770/AWCDShop/products/ProductsSearch.aspx?query={searchTerms}" />
<Url type="application/x-suggestions+xml"
template="http://localhost:31770/AWCDShop/SearchSuggestion.ashx?query={searchTerms}"/>
</OpenSearchDescription>
Как видно из описания, мы не указываем иконку для нашего поиска, а также подсказки в формате JSON. При этом при использовании поиска, пользователь будет перенаправляться на только что разработанную страницу products/ProductsSearch.aspx. Строку, описывающую доступ к подсказкам рассмотрим позднее.
21.5. Добавление поставщика поиска на страницу сайта
Теперь необходимо уведомить пользователей нашего магазина о том, что сайт предоставляет собственное поисковое расширение для браузера. Существует два способа уведомления пользователя о поставщике поиска. Первый способ заключается в предоставлении ссылки или кнопки, указывающей на файл описания. В этом случае для установки поставщика пользователям требуется выполнить определенные действия. Второй способ предусматривает обеспечение возможности обнаружения поставщика поиска. В этом случае в верхней части веб-страницы необходимо указать строку кода, которая позволяет браузеру Internet Explorer 8 обнаруживать поставщик при просмотре сайта пользователями.
Ниже приведен пример кода, обеспечивающего добавление поставщика поиска при щелчке ссылки пользователем:
<a href="#"
onclick="window.external.AddSearchProvider('http://www.example.com/provider.xml')">Add Search Provider Example</a>
В этом примере вызывается метод AddSearchProvider. Метод AddSearchProvider доступен из объекта external объекта window. При выполнении этого кода на HTML-странице в браузере Internet Explorer 8 открывается диалоговое окно "Добавление поставщика поиска".
Второй способ информирования пользователя о наличии поискового расширения предусматривает обнаружение поставщика поиска браузером. Это обеспечивается посредством добавления элемента link в объект head веб-страницы. В следующем примере кода выполняется обнаружение поставщика поиска браузером Internet Explorer 8:
<link title="My Provider" rel="search"
type="application/opensearchdescription+xml"
href="http://www.example.com/provider.xml">
Атрибуту rel необходимо присвоить значение "search", а атрибуту type – значение "application/opensearchdescription+xml". Значение атрибута title отображается в раскрывающемся списке поля мгновенного поиска. Атрибут href содержит абсолютный или относительный URL-адрес, определяющий местоположение файла описания OpenSearch.
При загрузке страницы в браузер Internet Explorer 8 цвет стрелки в раскрывающемся списке поля мгновенного поиска изменяется на оранжевый, что свидетельствует о добавлении в него нового поставщика. Прежде чем добавлять новые поставщики в список, можно ознакомиться с ними. Если пользователь решает установить поставщик поиска, открывается диалоговое окно "Добавление поставщика поиска".
Расположим на странице master.master в теге head следующий код:
<link rel="search"
type="application/opensearchdescription+xml"
href="http://localhost:31770/AWCDShop/Search.xml"
title="Adventure Works 1" />
Теперь, когда пользователи будут заходить на любую страницу нашего сайта, они будут уведомлены о том, что сайт предоставляет поисковое расширение, и смогут его добавить.