Mail.RuПочтаМой МирОдноклассникиИгрыЗнакомстваНовостиПоискВсе проекты
Сегментация сайта

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

Сегменты сайта определяются следующими компонентами:

  1. Регулярным выражением на адрес документа без параметров. 
  2. Если адрес документа удовлетворяет регулярному выражению, то документ относится к данному сегменту.

    Пример: Записи в блоге //go.mail.ru/blog/ будут попадать в такой сегмент:

    ^/blog/[0-9]+/[0-9]+/[0-9]+/[^/]*$
    //go.mail.ru/blog/2012/08/14/poiskmailru-chast-pervaya/
    //go.mail.ru/blog/2013/08/21/metaopisaniya-v-rezultatah-vydachi/


  3. Списком обязательных параметров (необязательно). 
  4. Если этот список указан, то дополнительно к регулярному выражению из пункта 1, проверяется наличие параметров  из указанного списка. Если они есть, то документ относится к данному сегменту. Если их нет, то не относится. 

    Пример: Список страниц блога

    ^/blog$ +page
    //go.mail.ru/blog/?page=2
    //go.mail.ru/blog/?page=7


  5. Списком обязательных параметров и их значений (необязательно). 

Если этот список указан, то дополнительно к проверкам из пункта 2, проверяется не только наличие параметров, но и их значения. 

Пример: Поиск по закрытым вопросам из //otvet.mail.ru/

^/search_otvet$ +q+zvstate ~zvstate=1
//go.mail.ru/search_otvet?q=чем+кормить+кота&zvstate=1
//go.mail.ru/search_otvet?q=что+измеряют+динамометром&zvstate=1

Адрес документа сначала проверяется последовательно по списку правил, начиная с первого до срабатывания первого правила. Если не нашлось ни одного правила, «сработавшего» для адреса данного документа, то он попадает в специальный «нулевой» сегмент.

С каждым сегментом связана информация о том, сколько документов из него наш Поиск может скачать, поставлено в очередь на скачку и сколько уже скачано.