Розкрутка і оптимізація сайтів в Яндексі має ряд особливостей. Яндекс по праву вважається найпопулярнішою пошуковою машиною в рунеті, тому основний потік відвідувачів сайту зазвичай приходить після просування, або розкрутки сайту в Yandex.
Особливості просування сайту в Yandex
На початку роботи з сайтом необхідно провести реєстрацію сайту в пошуковій системі Yandex.
Деякі поради по реєстрації сайту.
Додавайте верхню сторінку вашого сервера - решта Yandex знайде сам по посиланнях.
Намагайтеся не реєструвати в пошуковику недокінченої або порожні сторінки, сторінки без подальших посилань. Справа в тому, що сторінки такого виду мають низький пріоритет у черзі робота, отже, доведеться чекати, коли робот нарешті відвідає цю адресу знову і дізнається, що там нарешті з'явилося наповнення.
Дивіться на відповідь, який видає вам програма AddURL. Якщо ви помилилися (наприклад, в адресі, і такої сторінки не існує), то AddURL повідомить вас про це.
Створіть файл robots.txt, якщо ви хочете закрити якісь розділи від індексування (наприклад, з міркувань таємності).
Якщо ваша сторінка була проіндексована, а потім ви змінили її зміст або видалили її, не турбуйтеся - робот автоматично обійде її знову і оновить індекс (у випадку, якщо сторінка більше не існує, вона буде виключена з бази і, отже, з пошуку).
Перевіряйте, проіндексований чи ресурс, не відразу, а через кілька днів після додавання в базу Яndex. Зазвичай сторінки з'являються в пошуковій базі протягом тижня після їх появи або зміни. Надалі робот буде самостійно (автоматично) знаходити нові та змінені документи. Причому частота обходу конкретного сервера залежить від зафіксованої роботом частоти зміни його сторінок.
Положення сайту в списку результатів при пошуку. Зареєструватися в пошуковій системі - це одна справа, а домогтися того, щоб сторінки вашого сайту виявлялися ближче до початку списку при запитах - це інша справа. Причому другий набагато складніше першого. Ось що визначає положення сайту на першій сторінці пошукової системи при запиті по одному слову.
Частотні характеристики
Частота слова в базі
Частота слова в документі
Розмір бази
Розмір документа
Привілейоване становище слова в документі (наприклад, заголовок) та / або наявність його в списку ключових слів
Присутність слова в "авторитетних" посиланнях на даний документ
"Зважений індекс цитування" документа
Кількість і ранг ("авторитетність") усіх сторінок сайту з цим словом
Поради, які допоможуть користувачам знайти вашу сторінку.
Задавайте унікальні заголовки документів, коротко описують сайт і поточний документ (але не більше 20-25 слів). Слова в заголовках мають більшу вагу, ніж інші.
Давайте кожному документу опис в тегу description.
Не забувайте про ключові слова, по можливості унікальних для кожної страніци.Подробнее про тезі description і ключових словах читайте в рубриці Тег META.
Робіть підписи до картинок в тегу alt.
Чим довше документ, тим менш помітні в ньому будуть слова, задані в запиті і, отже, ваша сторінка буде нижче в результатах пошуку при інших рівних. Намагайтеся розбивати довгі документи на більш короткі.
Яндекс працює тільки з текстами і не вміє розпізнавати графічні зображення. Тому, якщо назва намальовано, варто продублювати його в текстовому вигляді.
І, нарешті, подумайте, за якими словами і фразами ви самі шукали б сайт вашої тематики.
Чого не слід робити при розкручуванні сайту в пошуковій системі Yandex.
Не слід використовувати спам на своїх сторінках. Спам - це заголовки і ключові слова, присмачені великою кількістю слів з найпопулярніших запитів, великі масиви тексту, "написані" на сторінці кольором фону або дуже дрібним шрифтом, а також багато інших виверти з метою залучення користувача на свої сторінки обманом.
Їх не варто застосовувати з двох причин. По-перше, це не додає слави творцеві сторінок і викликає природне роздратування користувачів. По-друге, Яндекс відстежує такі ненормальні зміни і знижує місце документа на сторінці результатів. Крім цього, спам збільшує розмір документа і, отже, зменшує контрастність слів у ньому, що також впливає на місце документа в списку знайденого. У випадках злісного використання спаму адміністрація Яндекс може виключити такі сторінки і сайти з бази.
Чи не слеледует реєструвати сторінки з часом перенаправлення на інші сторінки (redirect) рівним нулю також виключаються з індексування.
Не слід використовувати сторінки з безліччю фреймів.
Не використовуйте нестандартні кодування
Не слід робити посилання на сторінки вашого сайту за допомогою скриптів. Робот працює зі стандартними посиланнями мови HTML (href, link і frame), тобто так, як працював би користувач з відключеними Java і Java script.
Як працює пошукова система Яндекс.
Завдання пошукової системи.
Основне завдання пошукової системи - доставляти людям інформацію, тобто з'єднувати користувачів з потрібними їм документами. Причому спілкування між користувачем і пошуковою системою відбувається за допомогою слів пошукового запиту.
Відомо кілька класів алгоритмів пошуку. Переважна більшість з них вимагають попереднього індексування (алгоритми інвертованих файлів, Суфіксне дерево, сигнатур). У разі прямого пошуку індексування не потрібно - пошук здійснюється в лоб, шляхом послідовного перегляду документів. Пошукова система Яндекса використовує індекс, заснований на інвертованих файлах.
Інвертований файл - концептуально досить просте поняття, з яким стикався у повсякденному житті кожен з нас. Будь індекс бази даних по ключовому полю є формою інвертованого списку. Втім, такі списки не обов'язково повинні бути реалізовані на комп'ютері: існують паперові конкорданси текстів російських класиків, тобто словники, в яких в алфавітному порядку
перераховані слова, що вживаються письменниками, а також зазначена частота їх вживання.
Зрозуміло, робота з подібним індексом набагато ефективніше, ніж без нього. Набагато простіше відшукати потрібне слово в конкорданси і подивитися за посиланнями, де воно вживається, ніж перегортати книгу в надії це слово відшукати.
Звичайно, детальний інвертований індекс може бути досить великим. Для зменшення розмірів файлу зазвичай вдаються до двох очевидних прийомам. Перший полягає в мінімізації обсягу інформації, яка зберігається в інвертованому файлі. Простіше кажучи, все зайве віддаляється - залишається лише те, що дійсно необхідно для переважної більшості запитів. Другий прийом полягає у вказівці відносних адрес: для кожної позиції запам'ятовується не її абсолютну адресу, а різниця адрес між поточною і попередньої позиціями. Для більшої ефективності файл упаковується (коди Голомба та інші не дуже жорсткі алгоритми упаковки), однак ефективні алгоритми стиснення використовуються рідко - позначається і відсутність особливого ефекту від стиснення, та й процесорний час, що витрачається на розпакування даних, шкода. Як правило, розмір упакованого інвертованого файлу складає від 7 до 30 відсотків від початкового тексту.
Отже, щоб щось знайти, пошукова система виконує два майже незалежних процесу: індексування (одержання документів, переробка, збереження індексу) і пошук. Індекс влаштований так, щоб пошук працював максимально швидко і якісно. Знаходив все, що потрібно, правильно ранжирував і видавав максимум корисної інформації, необхідної для процесу пошуку.
Критичним з точки зору економіки пошукових систем є, як не дивно, пошук, а не індексування, так як для відповіді на мільйони запитів на добу, навіть вдаючись до неймовірних хитрощів, не обійтися без громіздких комп'ютерних комплексів. Причому, головний фактор, що визначає кількість беруть участь в пошуку серверів, - саме пошукова навантаження. Це слід мати на увазі при спробі зрозуміти всякі дивацтва і неприємні особливості пошукових систем.
Отже, що ж відбувається з документами при індексуванні, а із запитами при їх виконанні? Який шлях повинні проробити один до друг документи і запити, щоб в кінцевому рахунку потрібний документ опинився в потрібному списку, в тому, в якому його шукають самим "потрібним" запитом?
Індексування сайту. Шлях документа.
Скачування.
Індексує частина пошукачів прийнято називати роботом. Основна компонента будь-якого робота - модуль скачування. Так як Мережа - це величезна павутина проводів, модулі скачування краще запускати паралельно, зазвичай кілька сотень на одній машині, і одночасно скачувати з різних місць мережі різні документи. Завантажувати документи по черзі безглуздо.
Технічно модуль скачування може бути або мультітредовим (Altavista Merkator), або використовувати асинхронний ввід-висновок (GoogleBot). У кожному разі, розробникам попутно доводиться вирішувати завдання багатопотокового DNS-сервісу. В Яндексі реалізована мультітредовая схема, скачують треди називаються черв'яками (worms), а їх менеджер - погоничем черв'яків (wormboy).
Однак рідкісний сервер витримає одночасне "поїдання" трьома сотнями черв'яків, тому в обов'язки диспетчера може входити і стеження за тим, щоб не перевантажувати чужий сервер і взагалі поводитися чемно.
Для скачування робот використовує протокол HTTP (іншого просто немає, це повний синонім слова "веб"), тому численні запитання вебмайстрів: "а що відбувається з активними документами", "а індексує ваш робот Server Side Includes?" - Просто-напросто не мають сенсу. Чому?
Суть HTTP-протоколу в наступному. Робот передає серверу рядок: "GET / path / document" та інші корисні рядки, що входять до HTTP-запит, а у відповідь отримує текстовий потік, на початку якого - кілька службових рядків HTTP-заголовка, що видаються веб-сервером (безпосередньо або за допомогою вашого скрипта), а потім вже і сам документ. Це все.
Як формується документ, з активних або пасивних частин він складається, робот не знає і знати в
принципі не може. Він має справу з повністю сформованим потоком, який йому повертає ваш веб-сервер.
Скачування може бути організовано на різних принципах: "в ширину", по цитованості, тематичної локальності, за PageRank, але мета одна - звести до мінімуму мережевий трафік при максимальній повноті. Тому ефективне скачування - ціла наука, якої присвячені центральні доповіді на кращих міжнародних конференціях (WWW Conference, VLDB і т. П.).
Тим не менш, у всіх модулів скачування всіх пошукових роботів є спільні риси. По-перше, вони підпорядковуються правилам для роботів, записаним у файлі robots.txt, який повинен лежати в корені кожного сервера. Там вебмастер може вказати бажані і небажані області доступу тим чи іншим роботам (або всім відразу). Контроль поведінки роботів можливий і за допомогою строчки, що поміщається в документ. Тоді робот буде підкорятися тому, що там написано "по-документно".
Однак крім фільтрів, що встановлюються вебмастером, у роботів є і свої власні фільтри.
По-перше, багато роботи побоюються індексувати так звані динамічні документи, формально відносячи до таких і документи, що містять знак питання в URL. Зрозуміло, що це всього лише "евристика", припущення роботів, не більше того. Адже в руках вебмастера є способи передавати параметри, приховуючи CGI-механізм (тобто без знаку питання і пар імя_параметра = значеніе_параметра), наприклад за допомогою PATH_INFO або mod_rewrite. І навпаки, маса серверів, що використовують CGI-інтерфейс, роками видають виключно стабільне і "статичне" зміст. Зауважте, що багато роботи (наприклад, Яндекс) на цю евристику не звертають уваги і індексують "динамічні сторінки" так само, як і "статичні".
По-друге, кожен робот підтримує свій власний список ресурсів: покараних за спам або відфільтрованих по якій-небудь технічної причини. Про це ми поговоримо трохи пізніше, а поки лише підкреслимо, що пошуковики, як правило, не беруть на себе функцію громадського цензора і не фільтрують "погане" або "протизаконне" зміст. У кращому випадку вони надає подібну фільтрацію як спеціальний сервіс. І тут ми впритул підходимо до етичної проблеми, надто глибокою для обговорення в короткій статті. Сформулюю лише "можливий принцип": якість пошуку інформації не пов'язано з якістю самої інформації. Пошуковик - свого роду дзеркало, яке відповідає тільки за якість процесу відображення, але не предметів, які в ньому відбиваються.
Відкидання повторів на сайті.
За переднім краєм, тобто за модулем скачування - стоять інші модулі, які допомагають зменшувати трафік, підвищувати покриття і обробляти такі ресурси, які з найбільшою ймовірністю "прийшла пора скачати", або ж ті, які слід частіше оновлювати для підтримки високої якості пошуку.
Насамперед, це модулі зберігання URL і посилань. Вони дозволяють не викачувати повторно один і той же URL, обмінюватися списком нових URL між різними серверами скачування або вважати корисні метрики цитованості документів.
Далі. Модулі відстеження дублікатів вирішують завдання неіндексірованія дублікатів, тобто дозволяють уникати різкого засмічення бази повторами. Зауважте, що для коректного порівняння потрібно спочатку визначити кодування документа, адже 30 відсотків серверів її не повідомляють. Цим займається спеціальний модуль визначення мови і кодування, після відпрацювання якого документу може бути приписана кодування і мову, або ж він може бути відфільтрований (ще один вид фільтра), якщо робот вважатиме дану кодування або мова "чужими" для себе.
Найпростіша перевірка на повтор вмісту полягає в обчисленні контрольної суми всіх слів тексту і в тесті бази даних на її присутність. До речі, відразу після отримання сигналу про точний повторі пошукова машина Yandex отримує команду не ходити по посиланнях від дубліката: логіка такої фільтрації проста і дуже популярна у всіх роботів. Вона побудована на природному припущенні, що точно повторювані документи містять набір посилань на точно такі ж документи, які вже отримані по посиланнях оригіналу.
Окремо стоїть проблема обліку "злегка змінених" документів (зазвичай це робиться по набору характерних слів або контрольних сум), а також виявлення дзеркал серверів. Дзеркала являють собою
спеціальний випадок: їх не треба індексувати, хоча час від часу треба перевіряти, чи не "розклеїлись" вони.
Обробка змісту документа.
Що значать всі ці модулі для конкретного документа? Що робить пошукова система з документом після скачування?
Документ обробляється HTML-парсером (є й інші формати документів, і багато роботи їх підтримують), що звільняє документ від особливостей подання в цьому форматі і залишає лише суттєве для пошуку: текст, помітні особливості шрифтового оформлення, розбивка на абзаци, виділення посилань і інші корисні зони в документі (з точки зору можливостей пошуку); для кожного посилання запам'ятовується, на який URL вона вказує, і т.д.
В цьому етапі прихована маса нюансів. У сучасних документах активно використовується javascript для динамічної зміни змісту, для навігації, CSS-стилі для оформлення та ін. Повністю інтерпретувати всі ці елементи занадто дорого, і те, що може дозволити собі користувач (3-5 секунд очікування), не може дозволити пошуковий робот, який пожирає до ста документів в секунду. Поэтому все подобные элементы обрабатываются либо упрощенно (настолько, насколько позволяет эффективность алгоритмов обработки), либо вообще игнорируются.
Это не значит, что вебмастер может надеяться на полную гарантию того, что роботы никогда не будут понимать CSS или не ходить по ссылкам через javascript. Во-первых, роботы постоянно развиваются, во-вторых, в каждый момент времени разные роботы ведут себя по-разному. Но все же нельзя сбрасывать со счетов ограниченность поисковых роботов, как и вообще всех невизуальных агентов.
Само индексирование.
И наконец, из текста выделяются слова по языково-зависимым правилам (вы не забыли, что язык роботу уже известен?) и на слова "набрасываются" алгоритмами морфологического анализа (те поисковые системы, которые это практикуют) и алгоритмами "собственно индексирования" (инвертирование текста).
Зауважте, що фізично всі ці етапи можуть відбуватися в різних процесах або навіть на різних комп'ютерах. Все визначається логікою і функціональністю необхідних процедур і способом їх оптимізації.
У результаті з'являється індекс. Точніше, постійно накопичується оновлюється частина індексу, яка періодично зливається з великим індексом. В Яндексі це відбувається два рази на тиждень.
Пошукова машина Яндекс. Шлях запиту.
Куди йде користувач після введення запиту.
Отже, індекс побудований. До браузеру підсів користувач. Першим "зайшов" на пошуковий сервер користувача зустрічає "розумний" маршрутизатор (у випадку з Яндексом це Cisco 7200), який переадресує нового користувача на найменш завантажений веб-сервер. Про завантаження веб-сервера пристрій дізнається через "зворотний зв'язок" одним з обраних в конфігурації способів, наприклад по числу одночасно виконуються процесів. З цього моменту всі запити, що приходять з даного IP, тобто від даного користувача, будуть прозоро переадресовуватися на відповідний веб-сервер.
Роздача запиту по серверам.
Потім користувач набирає запит у віконці і відправляє його на пошук. В Яндексі веб-сервер служить одночасно для злиття результатів пошуку від пошукових серверів і джерел, в тому числі і різнорідних: таких як енциклопедії, рекламні оголошення Директ, новинна стрічка, магазинні каталоги, спеціальна база пошуку зображень і т. П. Запит модифікується і розсилається на пошукові сервери. Їх завдання - вибрати документи, що задовольняють пошуковому запиту, і отранжіровать список.
Особливості просування сайту в Yandex
На початку роботи з сайтом необхідно провести реєстрацію сайту в пошуковій системі Yandex.
Деякі поради по реєстрації сайту.
Додавайте верхню сторінку вашого сервера - решта Yandex знайде сам по посиланнях.
Намагайтеся не реєструвати в пошуковику недокінченої або порожні сторінки, сторінки без подальших посилань. Справа в тому, що сторінки такого виду мають низький пріоритет у черзі робота, отже, доведеться чекати, коли робот нарешті відвідає цю адресу знову і дізнається, що там нарешті з'явилося наповнення.
Дивіться на відповідь, який видає вам програма AddURL. Якщо ви помилилися (наприклад, в адресі, і такої сторінки не існує), то AddURL повідомить вас про це.
Створіть файл robots.txt, якщо ви хочете закрити якісь розділи від індексування (наприклад, з міркувань таємності).
Якщо ваша сторінка була проіндексована, а потім ви змінили її зміст або видалили її, не турбуйтеся - робот автоматично обійде її знову і оновить індекс (у випадку, якщо сторінка більше не існує, вона буде виключена з бази і, отже, з пошуку).
Перевіряйте, проіндексований чи ресурс, не відразу, а через кілька днів після додавання в базу Яndex. Зазвичай сторінки з'являються в пошуковій базі протягом тижня після їх появи або зміни. Надалі робот буде самостійно (автоматично) знаходити нові та змінені документи. Причому частота обходу конкретного сервера залежить від зафіксованої роботом частоти зміни його сторінок.
Положення сайту в списку результатів при пошуку. Зареєструватися в пошуковій системі - це одна справа, а домогтися того, щоб сторінки вашого сайту виявлялися ближче до початку списку при запитах - це інша справа. Причому другий набагато складніше першого. Ось що визначає положення сайту на першій сторінці пошукової системи при запиті по одному слову.
Частотні характеристики
Частота слова в базі
Частота слова в документі
Розмір бази
Розмір документа
Привілейоване становище слова в документі (наприклад, заголовок) та / або наявність його в списку ключових слів
Присутність слова в "авторитетних" посиланнях на даний документ
"Зважений індекс цитування" документа
Кількість і ранг ("авторитетність") усіх сторінок сайту з цим словом
Поради, які допоможуть користувачам знайти вашу сторінку.
Задавайте унікальні заголовки документів, коротко описують сайт і поточний документ (але не більше 20-25 слів). Слова в заголовках мають більшу вагу, ніж інші.
Давайте кожному документу опис в тегу description.
Не забувайте про ключові слова, по можливості унікальних для кожної страніци.Подробнее про тезі description і ключових словах читайте в рубриці Тег META.
Робіть підписи до картинок в тегу alt.
Чим довше документ, тим менш помітні в ньому будуть слова, задані в запиті і, отже, ваша сторінка буде нижче в результатах пошуку при інших рівних. Намагайтеся розбивати довгі документи на більш короткі.
Яндекс працює тільки з текстами і не вміє розпізнавати графічні зображення. Тому, якщо назва намальовано, варто продублювати його в текстовому вигляді.
І, нарешті, подумайте, за якими словами і фразами ви самі шукали б сайт вашої тематики.
Чого не слід робити при розкручуванні сайту в пошуковій системі Yandex.
Не слід використовувати спам на своїх сторінках. Спам - це заголовки і ключові слова, присмачені великою кількістю слів з найпопулярніших запитів, великі масиви тексту, "написані" на сторінці кольором фону або дуже дрібним шрифтом, а також багато інших виверти з метою залучення користувача на свої сторінки обманом.
Їх не варто застосовувати з двох причин. По-перше, це не додає слави творцеві сторінок і викликає природне роздратування користувачів. По-друге, Яндекс відстежує такі ненормальні зміни і знижує місце документа на сторінці результатів. Крім цього, спам збільшує розмір документа і, отже, зменшує контрастність слів у ньому, що також впливає на місце документа в списку знайденого. У випадках злісного використання спаму адміністрація Яндекс може виключити такі сторінки і сайти з бази.
Чи не слеледует реєструвати сторінки з часом перенаправлення на інші сторінки (redirect) рівним нулю також виключаються з індексування.
Не слід використовувати сторінки з безліччю фреймів.
Не використовуйте нестандартні кодування
Не слід робити посилання на сторінки вашого сайту за допомогою скриптів. Робот працює зі стандартними посиланнями мови HTML (href, link і frame), тобто так, як працював би користувач з відключеними Java і Java script.
Як працює пошукова система Яндекс.
Завдання пошукової системи.
Основне завдання пошукової системи - доставляти людям інформацію, тобто з'єднувати користувачів з потрібними їм документами. Причому спілкування між користувачем і пошуковою системою відбувається за допомогою слів пошукового запиту.
Відомо кілька класів алгоритмів пошуку. Переважна більшість з них вимагають попереднього індексування (алгоритми інвертованих файлів, Суфіксне дерево, сигнатур). У разі прямого пошуку індексування не потрібно - пошук здійснюється в лоб, шляхом послідовного перегляду документів. Пошукова система Яндекса використовує індекс, заснований на інвертованих файлах.
Інвертований файл - концептуально досить просте поняття, з яким стикався у повсякденному житті кожен з нас. Будь індекс бази даних по ключовому полю є формою інвертованого списку. Втім, такі списки не обов'язково повинні бути реалізовані на комп'ютері: існують паперові конкорданси текстів російських класиків, тобто словники, в яких в алфавітному порядку
перераховані слова, що вживаються письменниками, а також зазначена частота їх вживання.
Зрозуміло, робота з подібним індексом набагато ефективніше, ніж без нього. Набагато простіше відшукати потрібне слово в конкорданси і подивитися за посиланнями, де воно вживається, ніж перегортати книгу в надії це слово відшукати.
Звичайно, детальний інвертований індекс може бути досить великим. Для зменшення розмірів файлу зазвичай вдаються до двох очевидних прийомам. Перший полягає в мінімізації обсягу інформації, яка зберігається в інвертованому файлі. Простіше кажучи, все зайве віддаляється - залишається лише те, що дійсно необхідно для переважної більшості запитів. Другий прийом полягає у вказівці відносних адрес: для кожної позиції запам'ятовується не її абсолютну адресу, а різниця адрес між поточною і попередньої позиціями. Для більшої ефективності файл упаковується (коди Голомба та інші не дуже жорсткі алгоритми упаковки), однак ефективні алгоритми стиснення використовуються рідко - позначається і відсутність особливого ефекту від стиснення, та й процесорний час, що витрачається на розпакування даних, шкода. Як правило, розмір упакованого інвертованого файлу складає від 7 до 30 відсотків від початкового тексту.
Отже, щоб щось знайти, пошукова система виконує два майже незалежних процесу: індексування (одержання документів, переробка, збереження індексу) і пошук. Індекс влаштований так, щоб пошук працював максимально швидко і якісно. Знаходив все, що потрібно, правильно ранжирував і видавав максимум корисної інформації, необхідної для процесу пошуку.
Критичним з точки зору економіки пошукових систем є, як не дивно, пошук, а не індексування, так як для відповіді на мільйони запитів на добу, навіть вдаючись до неймовірних хитрощів, не обійтися без громіздких комп'ютерних комплексів. Причому, головний фактор, що визначає кількість беруть участь в пошуку серверів, - саме пошукова навантаження. Це слід мати на увазі при спробі зрозуміти всякі дивацтва і неприємні особливості пошукових систем.
Отже, що ж відбувається з документами при індексуванні, а із запитами при їх виконанні? Який шлях повинні проробити один до друг документи і запити, щоб в кінцевому рахунку потрібний документ опинився в потрібному списку, в тому, в якому його шукають самим "потрібним" запитом?
Індексування сайту. Шлях документа.
Скачування.
Індексує частина пошукачів прийнято називати роботом. Основна компонента будь-якого робота - модуль скачування. Так як Мережа - це величезна павутина проводів, модулі скачування краще запускати паралельно, зазвичай кілька сотень на одній машині, і одночасно скачувати з різних місць мережі різні документи. Завантажувати документи по черзі безглуздо.
Технічно модуль скачування може бути або мультітредовим (Altavista Merkator), або використовувати асинхронний ввід-висновок (GoogleBot). У кожному разі, розробникам попутно доводиться вирішувати завдання багатопотокового DNS-сервісу. В Яндексі реалізована мультітредовая схема, скачують треди називаються черв'яками (worms), а їх менеджер - погоничем черв'яків (wormboy).
Однак рідкісний сервер витримає одночасне "поїдання" трьома сотнями черв'яків, тому в обов'язки диспетчера може входити і стеження за тим, щоб не перевантажувати чужий сервер і взагалі поводитися чемно.
Для скачування робот використовує протокол HTTP (іншого просто немає, це повний синонім слова "веб"), тому численні запитання вебмайстрів: "а що відбувається з активними документами", "а індексує ваш робот Server Side Includes?" - Просто-напросто не мають сенсу. Чому?
Суть HTTP-протоколу в наступному. Робот передає серверу рядок: "GET / path / document" та інші корисні рядки, що входять до HTTP-запит, а у відповідь отримує текстовий потік, на початку якого - кілька службових рядків HTTP-заголовка, що видаються веб-сервером (безпосередньо або за допомогою вашого скрипта), а потім вже і сам документ. Це все.
Як формується документ, з активних або пасивних частин він складається, робот не знає і знати в
принципі не може. Він має справу з повністю сформованим потоком, який йому повертає ваш веб-сервер.
Скачування може бути організовано на різних принципах: "в ширину", по цитованості, тематичної локальності, за PageRank, але мета одна - звести до мінімуму мережевий трафік при максимальній повноті. Тому ефективне скачування - ціла наука, якої присвячені центральні доповіді на кращих міжнародних конференціях (WWW Conference, VLDB і т. П.).
Тим не менш, у всіх модулів скачування всіх пошукових роботів є спільні риси. По-перше, вони підпорядковуються правилам для роботів, записаним у файлі robots.txt, який повинен лежати в корені кожного сервера. Там вебмастер може вказати бажані і небажані області доступу тим чи іншим роботам (або всім відразу). Контроль поведінки роботів можливий і за допомогою строчки, що поміщається в документ. Тоді робот буде підкорятися тому, що там написано "по-документно".
Однак крім фільтрів, що встановлюються вебмастером, у роботів є і свої власні фільтри.
По-перше, багато роботи побоюються індексувати так звані динамічні документи, формально відносячи до таких і документи, що містять знак питання в URL. Зрозуміло, що це всього лише "евристика", припущення роботів, не більше того. Адже в руках вебмастера є способи передавати параметри, приховуючи CGI-механізм (тобто без знаку питання і пар імя_параметра = значеніе_параметра), наприклад за допомогою PATH_INFO або mod_rewrite. І навпаки, маса серверів, що використовують CGI-інтерфейс, роками видають виключно стабільне і "статичне" зміст. Зауважте, що багато роботи (наприклад, Яндекс) на цю евристику не звертають уваги і індексують "динамічні сторінки" так само, як і "статичні".
По-друге, кожен робот підтримує свій власний список ресурсів: покараних за спам або відфільтрованих по якій-небудь технічної причини. Про це ми поговоримо трохи пізніше, а поки лише підкреслимо, що пошуковики, як правило, не беруть на себе функцію громадського цензора і не фільтрують "погане" або "протизаконне" зміст. У кращому випадку вони надає подібну фільтрацію як спеціальний сервіс. І тут ми впритул підходимо до етичної проблеми, надто глибокою для обговорення в короткій статті. Сформулюю лише "можливий принцип": якість пошуку інформації не пов'язано з якістю самої інформації. Пошуковик - свого роду дзеркало, яке відповідає тільки за якість процесу відображення, але не предметів, які в ньому відбиваються.
Відкидання повторів на сайті.
За переднім краєм, тобто за модулем скачування - стоять інші модулі, які допомагають зменшувати трафік, підвищувати покриття і обробляти такі ресурси, які з найбільшою ймовірністю "прийшла пора скачати", або ж ті, які слід частіше оновлювати для підтримки високої якості пошуку.
Насамперед, це модулі зберігання URL і посилань. Вони дозволяють не викачувати повторно один і той же URL, обмінюватися списком нових URL між різними серверами скачування або вважати корисні метрики цитованості документів.
Далі. Модулі відстеження дублікатів вирішують завдання неіндексірованія дублікатів, тобто дозволяють уникати різкого засмічення бази повторами. Зауважте, що для коректного порівняння потрібно спочатку визначити кодування документа, адже 30 відсотків серверів її не повідомляють. Цим займається спеціальний модуль визначення мови і кодування, після відпрацювання якого документу може бути приписана кодування і мову, або ж він може бути відфільтрований (ще один вид фільтра), якщо робот вважатиме дану кодування або мова "чужими" для себе.
Найпростіша перевірка на повтор вмісту полягає в обчисленні контрольної суми всіх слів тексту і в тесті бази даних на її присутність. До речі, відразу після отримання сигналу про точний повторі пошукова машина Yandex отримує команду не ходити по посиланнях від дубліката: логіка такої фільтрації проста і дуже популярна у всіх роботів. Вона побудована на природному припущенні, що точно повторювані документи містять набір посилань на точно такі ж документи, які вже отримані по посиланнях оригіналу.
Окремо стоїть проблема обліку "злегка змінених" документів (зазвичай це робиться по набору характерних слів або контрольних сум), а також виявлення дзеркал серверів. Дзеркала являють собою
спеціальний випадок: їх не треба індексувати, хоча час від часу треба перевіряти, чи не "розклеїлись" вони.
Обробка змісту документа.
Що значать всі ці модулі для конкретного документа? Що робить пошукова система з документом після скачування?
Документ обробляється HTML-парсером (є й інші формати документів, і багато роботи їх підтримують), що звільняє документ від особливостей подання в цьому форматі і залишає лише суттєве для пошуку: текст, помітні особливості шрифтового оформлення, розбивка на абзаци, виділення посилань і інші корисні зони в документі (з точки зору можливостей пошуку); для кожного посилання запам'ятовується, на який URL вона вказує, і т.д.
В цьому етапі прихована маса нюансів. У сучасних документах активно використовується javascript для динамічної зміни змісту, для навігації, CSS-стилі для оформлення та ін. Повністю інтерпретувати всі ці елементи занадто дорого, і те, що може дозволити собі користувач (3-5 секунд очікування), не може дозволити пошуковий робот, який пожирає до ста документів в секунду. Поэтому все подобные элементы обрабатываются либо упрощенно (настолько, насколько позволяет эффективность алгоритмов обработки), либо вообще игнорируются.
Это не значит, что вебмастер может надеяться на полную гарантию того, что роботы никогда не будут понимать CSS или не ходить по ссылкам через javascript. Во-первых, роботы постоянно развиваются, во-вторых, в каждый момент времени разные роботы ведут себя по-разному. Но все же нельзя сбрасывать со счетов ограниченность поисковых роботов, как и вообще всех невизуальных агентов.
Само индексирование.
И наконец, из текста выделяются слова по языково-зависимым правилам (вы не забыли, что язык роботу уже известен?) и на слова "набрасываются" алгоритмами морфологического анализа (те поисковые системы, которые это практикуют) и алгоритмами "собственно индексирования" (инвертирование текста).
Зауважте, що фізично всі ці етапи можуть відбуватися в різних процесах або навіть на різних комп'ютерах. Все визначається логікою і функціональністю необхідних процедур і способом їх оптимізації.
У результаті з'являється індекс. Точніше, постійно накопичується оновлюється частина індексу, яка періодично зливається з великим індексом. В Яндексі це відбувається два рази на тиждень.
Пошукова машина Яндекс. Шлях запиту.
Куди йде користувач після введення запиту.
Отже, індекс побудований. До браузеру підсів користувач. Першим "зайшов" на пошуковий сервер користувача зустрічає "розумний" маршрутизатор (у випадку з Яндексом це Cisco 7200), який переадресує нового користувача на найменш завантажений веб-сервер. Про завантаження веб-сервера пристрій дізнається через "зворотний зв'язок" одним з обраних в конфігурації способів, наприклад по числу одночасно виконуються процесів. З цього моменту всі запити, що приходять з даного IP, тобто від даного користувача, будуть прозоро переадресовуватися на відповідний веб-сервер.
Роздача запиту по серверам.
Потім користувач набирає запит у віконці і відправляє його на пошук. В Яндексі веб-сервер служить одночасно для злиття результатів пошуку від пошукових серверів і джерел, в тому числі і різнорідних: таких як енциклопедії, рекламні оголошення Директ, новинна стрічка, магазинні каталоги, спеціальна база пошуку зображень і т. П. Запит модифікується і розсилається на пошукові сервери. Їх завдання - вибрати документи, що задовольняють пошуковому запиту, і отранжіровать список.
No comments:
Post a Comment