KnigaRead.com/

М. Абрамзон - Яндекс для всех

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн М. Абрамзон, "Яндекс для всех" бесплатно, без регистрации.
Перейти на страницу:

В отличие от сортировки, группировать результаты можно по нескольким признакам, для чего в запросе необходимо их все перечислить. На Яндексе поддерживается три варианта группировки:

□ "плоский" способ — каждая группа состоит ровно из одного документа, используется по умолчанию, иначе называется группировкой по сайтам;

□ "глубокий" способ — группировка выполняется по самому нижнему уровню иерархии или по сайтам. Еще ее называют иерархической группировкой по регионам каталога Яндекса;

□ "широкий" способ — обеспечивает возможность группирования по категориям заданного уровня в нужной ветке иерархии; ветка задается при помощи номера узла. Также называется группировкой по тематическим рубрикам каталога.

Разобравшись с элементами запроса, можно попытаться его составить. Но прежде, чем запускать его в работу, сформированный XML-запрос следует проверить. Для этого можно воспользоваться либо формой на Яндексе http://xml.yandex.ru/request_example.xml, либо проверить согласно формальной схеме XML-запроса Яндекса (http://xml.yandex.ru/request.xs). С ее помощью при наличии XML-парсера, поддерживающего валидацию по схеме, вы сможете проверить корректность своих запросов (листинг 10.6).

Листинг 10.6. Пример запроса, размещенный на Яндексе для тестирования

<?xml version="1.0" encoding="windows-1251"?> <request>

<query>yandex</query> <groupings> <groupby attr="d" mode="deep" groups-on-page="10" docs-in-group="1" /> </groupings> </request>

Обработка результата поиска

В ответ на запрос Яндекс возвращает ответ, состоящий из элементов <request> и <response> (табл. 10.5).

Принятый ответ необходимо будет обработать вашей программой и вывести в виде страницы сайта.

Специальные возможности Поиск по своему сайту

Мы уже говорили о том, что с помощью Яндекс. XML можно искать не только на Яндексе, но и на своем сайте. Сделать такой поиск можно следующим образом. Составьте запрос и дополните его расширенным условием поиска <<. Выглядеть это будет так:

{ваш запрос} << host="www.my_rsite.ru"

При этом есть несколько правил:

□ группировка по сайту должна быть "плоской";

□ специальные символы в запросе нужно менять на escape-последовательности.

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

{ваш запрос} &lt;&lt; host=&quot; www.my_rsite.ru&quot;

Подробный пример на языке Perl приведен по ссылке http://xml.yandex.ru/examples.xml?id=420129.

Ограничение поиска регионом или разделом каталога

Вы можете сформировать запрос, ограничив поиск определенным географическим регионом или разделом Яндекс. Каталога. Для этого потребуется использовать коды, которые можно получить по ссылкам:

□ коды регионов — http://search.yaca.yandex.ru/geo.c2n;

□ коды разделов каталога — http://search.yaca.yandex.ru/cat.c2n.

Например, если вы ищете слона в Казани (код 43), вам потребуется создать следующий запрос:

<query>слон &lt;&lt; cat=(11000043)</query>

Правильная кодировка в запросе

Кодировка при поиске через Яндекс XML задается в первой строке отправляемого запроса:

<?xml version="1.0" encoding="windows-1251"?>

А вот результаты поиска всегда отдаются в кодировке UTF-8, для преобразования которой в любую другую потребуется дополнительная библиотека или модуль, например, Convert::Cyrillic (http://www.neystadt.org/cyrillic/ Convert-Cyrillic.htm).

Поиск картинок

Начиная с середины 2006 года сервис Яндекс XML стал искать не только документы, опубликованные на веб-сайтах, но и изображения. При этом результаты поиска будут такими же, как если бы вы искали на Яндекс. Картинках.

Количество запросов на поиск картинок учитывается в общем количестве запросов (все запросы "принадлежат" одному и тому же IP-адресу). Кроме этого, в результатах "обычного" XML-поиска теперь можно показывать одно наиболее релевантное изображение, так, как это происходит в результатах поиска на Яндексе. В этом случае запрос будет выглядеть примерно так (листинг 10.7).

Листинг 10.7. Пример запроса с выводом изображения I

<request>

<query>anoHbK/query>

<groupings>

<groupby attr="ih" mode="deep" />

<groupby attr="d" mode="deep" />

</groupings>

</request>

Поиск в найденном

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

(заповедник Эйн-Геди) && (длиннохвостый скворец)

Примеры решений с использованием Яндекс. XML

Возможности XML-РїРѕРёСЃРєР° оказались востребованными. РС… использует, например, такая поисковая система, как Nigma.ru, визуальная поисковая система Quintura, система "Телеграф" — РїРѕРёСЃРє РїРѕ белорусским сайтам Рё РґСЂСѓРіРёРµ поисковые системы.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*