Расширение RSS: «Яндекс», поиск по блогам

«Яндекс» выпустил специальный RSS-плагин к популярным PHP-форумам для сервиса «Поиск по блогам». Автор — известный PHP-программист Дима Смирнов. На медленно стухающей «Хабре» немедленно появились те, кто «не читал, но обсуждают».

В чём же заключается смысл плагина? Поскольку я в курсе, давайте расскажу.

Сервис поиска по блогам «Яндекса», как вытекает из названия, индексирует блоги и многим кажется, что на этом его отличие от основного поиска заканчивается. Как бы не так! Поисковик «Яндекса» индексирует HTML-страницы, поисковик поиска по блогам индексирует RSS, а в RSS сайты отдают какое-то небольшое количество последних постов.

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

Дима с командой поиска по блогам придумали очень простую и эффективную штуку. RSS — формат расширяемый, для него уже масса расширений, это нормальная практика. Если заглянуть в RSS любого диминого сайта, то можно увидеть, что в нём упоминается новое расширение: «ya:more», т.е. новый тег «more» в пространстве имён «ya».

Для того, чтобы его использовать, в тег «rss» нужно дописать строку «xmlns:ya="http://blogs.yandex.ru/"» и вставить тег «ya:more», содержащий URL, указывающий на RSS, содержащий предыдущие N постов:
<rss xmlns:ya="http://blogs.yandex.ru/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">
<ya:more>http://coprophagous.ru/rss/posts/740</ya:more>
Получается много связанных этим тегом документов, в последнем из которых тег «ya:more» отсутствует. Таким образом индексатор поиска по блогам может пройтись по всем постам блога и проиндексировать их. СЕОшники должны оценить.

Заслуга Димы заключается не только в том, что он придумал простое решение проблемы и мотивировал команду поиска реализовать её, но ещё и в том, что он написал готовые плагины, которые добавляют эту функциональность для трёх популярных форумов на языке PHP: PHPBB, vBulletin и IP.Board.

Кроме этого, формат позволяет индексировать и комментарии к записям, в том числе и древовидные. Подробнее об этом можно прочитать в файле readme.html, который находится внутри архива с плагинами.
15 сентября 2008 23:21

coprophagous.ru (coprophagous.ru)
15 сентября 2008, 23:46

"Дима придумал очень простую и эффективную штуку". -> "Дима и комманда поиска по блогам придумали очень простую и эффективную штуку".

"Заслуга Димы заключается не только в том, что он придумал простое решение проблемы" -> "Заслуга Димы заключается в том, что он мотивировал комманду ППБ сделать то, что они и так очень давно планировали".

На самом деле, когда я пришел к ним с идеей листалки, оказалось, что они ее давно хотят сделать.

sarman.livejournal.com (sarman.livejournal.com)
16 сентября 2008, 00:34

Это добро.

bolk (bolknote.ru)
16 сентября 2008, 00:36, ответ предназначен coprophagous.ru:

Поправил, спасибо!

bolk (bolknote.ru)
16 сентября 2008, 00:38, ответ предназначен sarman.livejournal.com:

Надо себе будет тоже плагин написать.

skurudo (pavel.galkin.su)
16 сентября 2008, 12:02, ответ предназначен coprophagous.ru:

Дай, пожалуйста, PunBB. И пива бы попить :)

myxolove.blogspot.com (myxolove.blogspot.com)
16 сентября 2008, 12:47

Ну прям "Господу Богу помолимся!".

leotsarev.livejournal.com (leotsarev.livejournal.com)
16 сентября 2008, 13:22

Надо только упомянуть о двух недостатках yarss.php
Во-первых, E_STRICT yarss.php не выдерживает, что для коммерческого проекта нонсенс.
Во-вторых, в документации сказано — поддерживает PHPBB, а на самом деле — поддерживает PHPBB на базе данных MySQL, потому что внаглую игнорирует PHPBB встроеннный Database Abstraction Layer и читает все напрямую. По официальным стандартам MOD PHPBB — это безусловный отказ в сертификации. Разобраться в том, как работает этот DBAL, у меня заняло полдня, не больше.
Ну и в-третьих вытекает из второго. Если бы пункт 2 удалось бы решить, можно было бы запаковать этот файл как MOD, что очень упростило бы жизнь в плане обновления и прочего.

bolk (bolknote.ru)
16 сентября 2008, 13:32, ответ предназначен leotsarev.livejournal.com:

Для коммерческого, наверное, нонсенс. Наверное, всё дело в том, что проект не коммерческий и в открытых исходниках. И, если что-то не так, то можно писать не русские буквы в комментариях, а латинские в исходниках? ;)

Поправьте и пришлите Диме, все вам скажут спасибо.

coprophagous.ru (coprophagous.ru)
16 сентября 2008, 17:01, ответ предназначен bolk (bolknote.ru):

А че такое E_STRICT?

bolk (bolknote.ru)
16 сентября 2008, 17:19

http://ru2.php.net/manual/ru/errorfunc.constants.php#errorfunc.constants.errorlevels.e-strict

david-m.livejournal.com (david-m.livejournal.com)
16 сентября 2008, 18:49

Я-море — это, конечно, круто. Немного круче, правда, было бы использовать atom:link rel="next/previous", которые не то чтобы стандартны, но на практике вполне используются: http://www.google.ru/search?q=atom+link+rel%3Dnext.

bolk (bolknote.ru)
17 сентября 2008, 10:55, ответ предназначен david-m.livejournal.com:

Что-то мне подсказывает, что используются они в Atom'e?

bolk (bolknote.ru)
17 сентября 2008, 10:57, ответ предназначен david-m.livejournal.com:

Круто не «я-море». Круто — придумать решение, вдохновить людей на его реализацию и написать три плагина к написанным левой ногой движкам, которые видишь впервые в жизни.

david-m.livejournal.com (david-m.livejournal.com)
17 сентября 2008, 15:26

(как показывают гугловские примеры,) Используются они где угодно, так же как и ya:more, ибо XML велик.

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<atom:link rel="next" href="my://feed?page=2" />

Просто при этом мы имеем определённую семантику, которую уже понимают как минимум некоторые программы, а не только яндекс-бот. В качестве конструктива — поскольку такие линки всё-таки в природе существуют, имеет смысл поддержать ботом и их тоже.

С «круто» — я согласен, что без реализации никакая идея ничего не стоит, и в этом смысле плагин безусловно положительная штука. И уж точно один новый xml-элемент — это ГОРАЗДО лучше чем тот шедевр самостийности, который нам предлагается для яндекс-картинок (http://images.yandex.ru/xml-import.html).

Az (shitdesign.ru)
17 сентября 2008, 15:52

еще бы оно UTF поняло - и был бы рай!

LXj (lxj.endofinternet.net)
19 сентября 2008, 15:16, ответ предназначен bolk (bolknote.ru):

Что-то мне подсказывает, что Яндекс и Atom проиндексировать может.

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)