Если поисковый запрос успешно получен, выполняется собственно поиск, после чего показывается страница с результатами выполнения запроса, либо, если формат запроса не соответствует ни одному из правил, показывается страница с сообщением об ошибке.
Но поиск через специальную страницу, не связанную непосредственно с вебресурсом, удобен только для администратора в период отладки. Пользователям требуется предоставить возможность вести поиск на сайте, для чего на его страницы необходимо добавить форму поиска. Например, такую, которая приведена в следующем примере (листинг 10.5).
Листинг 10.5. Пример настройки поисковой формы на сервере
<! — форма поиска —>
<form name="search" method="get" action="http://www.my_site.ru:17000/">
<Ь>Поиск:</b><br>
<input size="15" name="text" value="" maxlength="200"> <input type="submit" value=" Найти ">
</form>
Страница результатов
Внешний вид страницы результатов в бесплатной версии аналогичен странице результатов Яндекса за исключением того, что результаты формируются лишь на основе проиндексированных страниц вашего ресурса. Никаких новостей, предложений Маркета, подсказок из словарей и энциклопедий здесь, конечно, нет. Как нет и рекламы. В платной версии вы, кроме всего прочего, можете изменить формат страницы результатов, подогнав его под дизайн вашего проекта.
В выдаче результатов для каждого из них есть две полезные ссылки, помимо ссылки на найденный документ.
□ По первой ссылке — найденные слова — откроется страница документа, код которой дополнен новой функциональностью. В начале и конце страницы добавлены ссылки для перехода на первое и последнее найденное в документе слово из запроса. Каждое слово выделено кнопками перехода на предыдущее или последующее найденное слово. С помощью этих указателей очень легко найти нужное даже в большом тексте.
□ Вторая ссылка позволяет выполнить поиск документов, похожих на найденный. Поиск выполняется на основе алгоритмов Яндекса, таких же, какие применяются в поиске "большого" Яндекса.
Эти ссылки присутствуют, но не работают в том случае, когда поиск ведется по отдельным зонам документа, например, по заголовку. В этом случае слово из запроса в явном виде на странице не присутствует, поэтому найти его в тексте с помощью кнопок и ссылок перехода не удастся.
Примеры использования
Поисковый сервер от Яндекса пользуется заслуженной популярностью за качество, с каким выполняется поиск, и надежность и скорость работы. Сложно сказать, какое количество ресурсов использует бесплатную версию программы. Зато известны ресурсы, применяющие профессиональные версии, позволяющие адаптировать страницы запроса и результатов под решение вебресурса.
Среди таких ресурсов — официальный сайт Президента России (http://www.kremlin.ru) (рис. 10.2), РИА Новости (http://rian.ru/), CNews (http://cnews.ru/), "Альфа-Банк" (http://www.alfabank.ru/), Билайн (http://beeline.ru/), Энциклопедия "Кругосвет" (http://krugosvet.ru/) и многие, многие другие ресурсы.
Применяется Яndex.Server и в локальных сетях, например, в таком варианте его использует Банк Москвы (http://mmbank.ru/), Компания "РУСАЛ" (http://rusal.ru/) и др.
10.2. Яндекс. XML
Не для всех ситуаций может оказаться удобным решение по развертыванию на своем веб-ресурсе полноценного поискового сервера. Причины для этого могут быть разными. Тем не менее качественный поиск все равно бывает необходим. Для таких случаев Яндекс предлагает иное решение, нежели Яндекс. Сервер — Яндекс. XML. Это сервис, позволяющий формировать автоматические поисковые запросы к Яндексу и публиковать его ответы у себя на сайте в собственном дизайне.
Как и поисковый сервер, решение Яндекс. XML также существует в двух вариантах — платном и бесплатном. Но разница между вариантами иная, нежели для поисковика. Ограничение бесплатной версии лишь одно — нельзя за сутки сделать более тысячи запросов к Яндексу. Во всем остальном никаких ограничений у бесплатной версии не существует. Тысячи запросов в день будет вполне достаточно для сайта со средней посещаемостью, поскольку далеко не каждый посетитель будет пользоваться предоставленной возможностью поиска.
Для чего можно использовать этот сервис? Например, для организации поиска по своему сайту. При выполнении работ по оптимизации и продвижению сайтов. Для использования в метапоисковиках. Для создания оригинальных игр, основанных на результатах поиска на Яндексе. (Я называю те направления, которые уже реализованы, но ведь можно придумать что-то еще, не так ли?)
Сказать, лучше этот вариант поиска любого другого или хуже, невозможно. Можно говорить лишь о различиях. При использовании Яндекс. XML вы получите результаты поиска "в чистом виде", без примеси дизайна, в структурированном виде. А написав программу разбора результатов, сможете сформировать страницу результатов в том виде, в каком она вам необходима.
10.2.1. Подключение к сервису
Для того чтобы подключиться к сервису и использовать XML-поиск, достаточно выполнить всего три шага:
1. Зарегистрироваться на Яндексе, если у вас еще нет своего логина.
2. Зарегистрировать свой IP-адрес.
3. Написать программу, которая будет формировать XML-запросы.
Из всех вышеперечисленных пунктов вопрос может вызвать только второй. Зачем регистрировать IP-адрес? Дело в том, что вне зависимости от того, будете ли вы пользоваться бесплатными услугами или платными, Яндексу придется учитывать количество ваших запросов. Учитываться они будут на тот IP-адрес, с которого будут поступать. Поэтому если адрес не зарегистрирован, то на поисковый запрос ответ дан не будет. Для проверки своего IP-адреса перейдите по ссылке http://xml.yandex.ru/ip.xml.
Возможные проблемы
Проблемы возникнут в том случае, если вы используете сервис для выполнения собственных работ (например, по оптимизации сайта) и работаете с домашнего компьютера через модем. Как правило, в этом случае провайдером вам выдается динамический IP-адрес. Или вы работаете через прокси-сервер, и IP-адрес также не будет вашим собственным. Поэтому, прежде, чем пользоваться сервисом, вам потребуется решить вопросы с получением постоянного IP-адреса.
После того как у вас первые два шага реализованы, остается сделать третий шаг, решающий.
10.2.2. Как написать программу
Создание запроса
Для написания программы вам не требуется скачивать с Яндекса никаких дополнительных модулей. Разве что примеры, позволяющие лучше разобраться со структурой запроса. Сформированный запрос отправляется вами на Яндекс, вы получаете ответ и формируете страницу результата. И форму запроса, и формат результирующей страницы вы создаете сами и вот здесь уже ни в чем не зависите от Яндекса. Единственное требование, чтобы при использовании сервиса на бесплатной основе информация об этом была выведена вверху каждой страницы результатов, а при платном использовании информация о Яндекс. XML может располагаться и внизу страницы.
Сервер XML-поиска Яндекса принимает поисковые запросы методом POST или методом GET по адресу http://xmlsearch.yandex.ru/xmlsearch/. Во входном потоке должен быть передан поисковый запрос в формате XML. Есть некоторые ограничения на формирование запроса и результатов: групп на странице не более 20, документов в группе не более 3, пассажей в документе не более 5, длина запроса в символах не более 150, число страниц при листании не более 100.