-->

Як влаштований індекс пошукової машини


Індекс - слово, яке постійно згадується в зв'язку з пошуковими машинами. На жаль, більшість користувачів Інтернету до сих пір погано уявляють, що це таке. Хоча, нічого складного в цьому понятті немає. Більш того, йому багато століть, і кожен з нас зустрічався з індексом у вигляді предметного покажчика книги ще до свого першого виходу в Інтернет.

Давайте розглянемо процес індексування тексту докладніше і розберемося з пристроєм індексу. Ось які кроки виконує пошукова машина для створення індексу з викачаних веб-сторінок.

Конверсія в чистий текст

Для початку текст сторінки що індексується потрібно очистити від будь-яких нетекстових елементів: графіки, розмітки (тегів) мови HTML, іншого «сміття». В результаті виходить чистий текст, з яким далі працює індексний робот.

Вибірка слів

З тексту потрібно вибрати всі слова, щоб потім розташувати їх за алфавітом. Для цього пошуковик повинен знати, що саме вважається словом - послідовність літер (і якого саме алфавіту), числа, букви і цифри послідовності, слова з дефісом і т. п., А також що словом не вважається і пропускається (пробіли, знаки пунктуації та інше). Нижче ми розповімо про це трохи докладніше. А зараз лише зазначимо, що у кожного пошуковика є своє визначення того, що вважати словом в тексті (стандарту тут, на жаль, не існує).

Отже, пошуковик вибирає з тексту все, що вважається словами, і збирає їх в окремий список.

Лінгвістична обробка

У більшості пошукових машин слова не записується в індекс в тому вигляді, в якому вони наведені в тексті.

Зазвичай на етапі вибірки слів з текстів веб-сторінок пошукова машина застосовує якийсь свій алгоритм лінгвістичної обробки слів, а саме, приведення слів до їх початковим граматичним формам, або основам (грубо кажучи, до називного відмінку). Цей алгоритм називається машинною морфологією. Робиться це для економії місця в індексі і, що ще важливіше, для більш точного пошуку.

З приводу використання машинної морфології в пошукових системах також існує досить багато міфів і домислів, так що нижче, в окремому розділі, ми спеціально торкнемося цього питання. Поки ж досить сказати, що машинна морфологія служить для заміни слів на їх основи в індексі пошуковика.

Складання індексу

Зібрані разом основи всіх слів з усіх текстів зводяться в індекс - своєрідний словник, в якому основи впорядковані за алфавітом, а кожній основі записано, з якої сторінки вона взята (номер сторінки) і на якому місці на цій сторінці дана основа стояла (номер входження). Основи в словнику упорядковуються за алфавітом для зручності пошуку по ним.

Таким чином, індексний запис має наступну структуру:

ОСНОВА / номер сторінки + номер входження / номер сторінки + номер входження / номер сторінки + номер входження / ...

Звичайно, в реальності для економії місця і підвищення швидкості використання індексу його структуру всіляко оптимізують і ускладнюють. Наприклад, замість основ в індексі зберігають їх номери (так як вони коротше і мають фіксовану довжину), а основи зберігають окремо; номера сторінок пишуть не всякий раз, а тільки один раз для всіх входжень з даної сторінки і т. д. Потім індекс упаковують для економії місця, ще раз індексують для прискорення доступу і т. д.

Але загальна ідея індексного запису саме така, як описано вище.

«Координатний» індекс

Перші інтернет-пошуковики (середини 1990-х років) не запам'ятовує розташування слова на сторінці. В індекс записувався тільки список сторінок, на яких зустрілося дане слово. Це робилося для економії місця і для того, щоб спростити структуру індексу, іншими словами, для більш швидкого доступу до індексу.

Однак це обмеження не дозволяло досить точно визначити релевантність сторінки при пошуку словосполучень. Адже пошуковик не міг розрізнити компактне входження слів запиту, коли вони стоять поруч, в одній фразі, від рзнесеного входження, коли одне слово запиту, скажімо, перебуває в правому верхньому кутку сторінки, а друге - в лівому нижньому.

В результаті для багатослівних запитів релевантність була практично нульовою. Так, наприклад, був влаштований пошуковик «Рамблера» аж до 1999 року.

Зі збільшенням кількості багатослівних запитів (а їх кількість весь час збільшується в міру зростання числа досвідчених користувачів) і в міру розвитку пошукових технологій більшість популярних пошукових систем перейшли на індекс, що враховує координати слова на сторінці. Такий індекс називається координатним.

Облік компактних входжень слів запиту в координатному індексі дозволяє не тільки більш акуратно «зважувати» релевантність сторінки, але і показувати найбільш підходящу цитату з тексту сторінки.

Якщо в звичайному тексті ми йдемо від сторінки до слів, то в індексі пошукова машина йде від слів до сторінок. Тому індекс пошукової машини називається інвертованим або інверсним, тобто перевернутим.

А звідки ж береться цитата в пошукових результатах? Адже в інвертованому індексі порядку слів в тексті явно немає. Невже пошуковик відновлює текст сторінки з цього «вивернутого навиворіт» індексу?

Ні, хоча це технічно і можливо. Для показу цитат набагато простіше і економніше зберігати ще й другий індекс, так званий прямий, який по суті являє собою стислу текстову копію всього Інтернету.
Детальніше почитати про пошукових роботах, дізнатися, які їх види бувають, а також подивитися, як виглядає сторінка сайту, що зберігається в прямому індексі, ви можете в статті «Роботи пошукових систем» 

«Прямий» індекс

Щоб показувати при знайдених сторінках цитати з виділеними (підсвіченими) словами запиту, пошукові машини зберігають всі тексти всіх проіндексованих сторінок. Виходить, що пошуковики зберігають у себе на серверах копію всього Інтернету, викачаного її індексним «павуком». Наприклад, Google має у себе текстову копію всього світового Інтернету (в тому обсязі, до якого зміг дістатися його «павук»), а «Яндекс» - копію всього Рунета.

Для зберігання текстової копії сторінок інверсний індекс не підходить - надто довго кожен раз при відображенні цитати відновлювати порядок слів у тексті. Набагато простіше зберігати другий індекс, на сленгу розробників називється "прямим". Він являє собою тексти веб-сторінок, очищені від усіх нетекстових елементів, стислі і упаковані, і є текстовою копією всього Інтернету.

Саме наявність цієї текстової копії дозволяє пошуковим машинам не тільки показувати релевантні цитати в результатах пошуку, а й має функцію «відновити текст сторінки», якою зручно користуватися, якщо сама потрібна сторінка в даний момент недоступна або взагалі вже видалена з сайту. У результатах пошуку Google таке посилання називається «Збережена копія», а у «Яндекса» - просто «Копія»). Іноді ця копія також називається «кеш сторінки».

Кеш сторінки
Натиснувши на посилання "Збережена копія", ви відкриєте веб-сторінку в тому вигляді, в якому вона була проіндексована в останній раз пошуковою системою.

До недавнього часу більшість пошукових машин зберігали копію сторінок без HTML-розмітки, графіки та іншого «сміття», в чисто текстовому вигляді. Однак, у міру розвитку IT-технологій майже всі пошукові системи перейшли на збереження повної копії сторінки, яку можна подивитися в будь-який момент навіть з усіма картинками, в тому дизайні і в тому оформленні, в якому вона була на сайті під час скачування пошуковим роботом.