Пошукові системи в мережі Інтернет

Вступ

Основні протоколи, використовувані в Інтернет (надалі також Мережа), не забезпечені достатніми вбудованими функціями пошуку, не говорячи вже про мільйони серверів, що знаходяться в ній. Протокол HTTP, використовуваний в Інтернет, гарний лише у відношенні навігації, що розглядається лише як засіб перегляду сторінок, але не їхнього пошуку. Те ж саме відноситься і до протоколу FTP, що навіть більш примітивний, чим HTTP. Через швидкий ріст інформації, доступної в Мережі, навігаційні методи перегляду швидко досягають межі їхніх функціональних можливостей, не говорячи вже про межу їхньої ефективності. Можна сказати, що потрібну інформацію уже не представляється можливим одержати відразу, тому що в Мережі зараз знаходяться мільярди документів і усі вони в розпорядженні користувачів Інтернет, до тому ж сьогодні їх кількість зростає. Кількість змін, яким ця інформація піддана, величезна і, саме головне, вони відбулися за дуже короткий період часу. Для того, щоб структурувати інформацію, накопичену в мережі Інтернет, і забезпечити її користувачів зручними засобами пошуку необхідних їм даних, були створені пошукові системи. 

Пошукові системи

Пошукові системи звичайно складаються з трьох компонентів:  

·        агент (павук чи кроулер), що переміщається по Мережі і збирає інформацію;  

·        база даних, що містить всю інформацію, що збирається павуками;  

·        пошуковий механізм, що люди використовують як інтерфейс для взаємодії з базою даних.  

Як працюють механізми пошуку

Засоби пошуку і структурування, іноді називані пошуковими механізмами, використовуються для того, щоб допомогти людям знайти інформацію, у якій вони бідують. Засоби пошуку типу агентів, павуків, кроулерів і роботів використовуються для збору інформації про документи, що знаходяться в Мережі Інтернет. Це спеціальні програми, що займаються пошуком сторінок у Мережі, витягають гіпертекстові посилання на цих сторінках і автоматично індексують інформацію, що вони знаходять для побудови бази даних. Кожен пошуковий механізм має власний набір правил, що визначають, як збирати документи. Деякі випливають за кожним посиланням на кожній знайденій сторінці і потім, у свою чергу, досліджують кожне посилання на кожній з нових сторінок, і так далі. Деякі ігнорують посилання, що ведуть до графічних і звукових файлів, файлам мультиплікації; інші ігнорують посилання до ресурсів типу баз даних WAIS; інші проінструктовані, що потрібно переглядати найперше найбільш популярні сторінки. 

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

·        Загальний пошук інформації в Мережі здійснюють програми, відомі як павуки. Павуки повідомляють про зміст знайденого документа, індексують його і витягають підсумкову інформацію. Також вони переглядають заголовки, деякі посилання і посилають проіндексовану інформацію базі даних пошукового механізму.  

·        Кроулери переглядають заголовки і повертають лише перше посилання.  

·        Роботи можуть бути запрограмовані так, щоб переходити по різним посиланнях різної глибини вкладеності, виконувати індексацію і навіть перевіряти посилання в документі. Через їхню природу вони можуть застрявати в циклах, тому, проходячи по посиланнях, їм потрібні значні ресурси Мережі. Однак, маються методи, призначені для того, щоб заборонити роботам пошук по сайтах, власники яких не бажають, щоб вони були проіндексовані.  

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

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

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

База даних відшукує предмет запиту, заснований на інформації, зазначеної в заповненій формі, і виводить відповідні документи, підготовлені базою даних. Щоб визначити порядок, у якому список документів буде показаний, база даних застосовує алгоритм ранжирування. В ідеальному випадку, документи, найбільш відповідному користувальницькому запиту будуть поміщені першими в списку. Різні пошукові системи використовують різні алгоритми ранжирування, однак основні принципи визначення відповідності наступні:  

1.      Кількість слів запиту в текстовому вмісті документа (тобто в html-коді).  

2.      Теги (розділи), у яких ці слова розташовуються. 

3.      Місце розташування шуканих слів у документі.  

4.      Питома вага слів, щодо яких визначається відповідність, у загальній кількості слів документа.  

Ці принципи застосовуються всіма пошуковими системами. А представлені нижче використовуються деякими, але досить відомими (AltaVista, HotBot).  

5.      Час - як довго сторінка знаходиться в базі пошукового сервера. Спочатку здається, що це досить безглуздий принцип. Але, якщо задуматися, як багато існує в Інтернету сайтів, що живуть максимум місяць! Якщо ж сайт існує досить довго, це означає, що власник дуже досвідчений у даній темі і користувачу більше підійде сайт, що пари років віщає світу про правила поведінки за столом, чим той, котрий з'явився тиждень назад з цією же темою.  

6.      Індекс цитованості - як багато посилань на дану сторінку веде з інших сторінок, зареєстрованих у базі розвідувача. 

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

Порівняльний огляд пошукових систем

Lycos. У Lycos використовується наступний механізм індексації:  

·        слова в <title> заголовку мають вищий пріоритет;  

·        слова на початку сторінки;  

·        слова в посиланнях;  

·        якщо в його базі індексу є сайти, посилання з який указує на індексований документ - відповідність цього документа зростає.  

Як і більшість систем, Lycos дає можливість застосовувати простий запит і більш витончений метод пошуку. У простому запиті як пошуковий критерій вводиться пропозиція природною мовою, після чого Lycos робить нормалізацію запиту, видаляючи з нього так звані stop-слова, і лише після цього приступає до його виконання. Майже відразу видається інформація про кількість документів на кожне слово, а пізніше і список посилань на формально релевантні документи. У списку проти кожного документа вказується його міра близькості запиту, кількість слів із запиту, що потрапили в документ, і оцінна міра близькості, що може бути чи більше менше формально обчисленої. Поки що не можна вводити логічні оператори в рядку разом з термінами, але використовувати логіку через систему меню Lycos дозволяє. Така можливість застосовується для побудови розширеної форми запиту, призначеної для спокушених користувачів, що уже навчилися працювати з цим механізмом. Таким чином, видно, що Lycos відноситься до системи з мовою запитів типу "Like this", але намічається його розширення і на інші способи організації пошукових розпоряджень.  

AltaVista. Індексування в цій системі здійснюється за допомогою робота. При цьому робот має наступні пріоритети: 

·        слова містяться в тегу <title> мають вищий пріоритет; 

·        ключові фрази в <Meta> тегах;  

·        ключові фрази, що знаходяться на початку сторінки;  

·        ключові фрази в ALT - посиланнях  

·        ключові фрази по кількості входжень (присутності) слів (фраз);  

Якщо тегів на сторінці немає, використовуються перші 30 слів, що індексує і показує замість опису (tag description). 

Найбільш цікава можливість AltaVista - це розширений пошук. Тут варто відразу обмовитися, що, на відміну від багатьох інших систем AltaVista підтримує одномісний оператор NOT. Крім цього, мається ще й оператор NEAR, що реалізує можливість контекстного пошуку, коли терміни повинні розташовуватися поруч у тексті документа. AltaVista дозволяє пошук по ключових фразах, при цьому вона має досить великий фразеологічний словник. Крім всього іншого, при пошуку в AltaVista можна задати ім'я поля, де повинне зустрітися слово: гіпертекстове посилання, applet, назва образа, заголовок і ряд других полів. На жаль, детально процедура ранжирування в документації по системі не описана, але видно, що ранжирування застосовується як при простому пошуку, так і при розширеному запиті. Реально цю систему можна віднести до системи з розширеним (бульовим) пошуком.  

Yahoo. Дана система з'явилася в Мережі однієї з перших, і сьогодні Yahoo співробітничає з багатьма виробниками засобів інформаційного пошуку, а на різних її серверах використовується різне програмне забезпечення. Мова Yahoo досить проста: усі слова варто вводити через пробіл, вони з'єднуються зв'язуванням AND або OR. При видачі не вказується ступінь відповідності документа запиту, а лише підкреслюються слова з запиту, що зустрілися в документі. При цьому не виробляється нормалізація лексики і не проводиться аналіз на "загальні" слова. Гарні результати пошуку виходять лише тоді, коли користувач знає, що в базі даних Yahoo інформація є напевно. Ранжирування виробляється по числу термінів запиту в документі. Yahoo відноситься до класу простих традиційних систем з обмеженими можливостями пошуку. На мал. 1 представлено вигляд форми даної пошукової системи в режимі звичайного та розширеного пошуку. 

OpenText. Інформаційна система OpenText являє собою самий комерціалізований інформаційний продукт у Мережі. Всі описи більше схожі на рекламу, чим на інформативний посібник з роботи. Система дозволяє провести пошук з використанням логічних "з'єднувачів", однак розмір запиту обмежений трьома чи термінами фразами. 

   

а) 

   

б) 

Малюнок 1. Вигляд форми пошукової системи Yahoo: а) в режимі звичайного пошуку; б) в режимі розширеного пошуку. 

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

Infoseek. У цій системі індекс створює робот, але він індексує не весь сайт, а лише зазначену сторінку. При цьому робот має такі пріоритети:  

·        слова в заголовку <title> мають найвищий пріоритет;  

·        слова в тегу keywords, description і частота входжень (повторень) у самому тексті;  

·        при повторенні однакових слів поруч викидає з індексу  

·        Допускає до 1024 символів для тега keywords, 200 символів для тега description;  

·        Якщо теги не використовувалися, індексує перші 200 слів на сторінці і використовує як опис;  

Система Infoseek має досить розвиту інформаційно-пошукову мову, що дозволяє не просто вказувати, які терміни повинні зустрічатися в документах, але і своєрідно зважувати їх. Досягається це за допомогою спеціальних знаків "+" - термін зобов'язаний бути в документі, і "-" - термін недопустимий у документі. Крім цього, Infoseek дозволяє проводити те, що називається контекстним пошуком. Це значить, що використовуючи спеціальну форму запиту, можна зажадати послідовної спільної зустрічальності слів. Також можна вказати, що деякі слова повинні спільно зустрічатися не лише в одному документі, а навіть в окремому чи параграфі заголовку. Мається можливість указівки ключових фраз, що представляють собою єдине ціле, аж до порядку слів. Ранжирування при видачі здійснюється по числу термінів запиту в документі, по числу фраз запиту за винятком загальних слів. Усі ці фактори використовуються як вкладені процедури. Підводячи коротке резюме, можна сказати, що Infoseek відноситься до традиційних систем з елементом зважування термінів при пошуку.  

WAIS. WAIS є однієї з найбільш витончених пошукових систем Internet. У ній не реалізовані лише пошук по нечітких множинах і вірогіднісний пошук. На відміну від багатьох пошукових машин, система дозволяє будувати не лише вкладені бульові запити, вважати формальну відповідність по різних мірах близькості, зважувати терміни запиту і документа, але і здійснювати корекцію запиту по відповідності. Система також дозволяє використовувати усікання термінів, розбивку документів на поля і введення розподілених індексів. Не випадково саме ця система була обрана в якості основної пошукової машини для реалізації енциклопедії "Британіка" на Internet.  

Пошукові роботи

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

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

Використання пошукових роботів

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

Статистичний Аналіз

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

Обслуговування гіпертекстів

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

Робот типу MOMSPIDER, що перевіряє посилання, може допомогти автору документа у виявленні подібних мертвих посилань, і також може допомагати в обслуговуванні гіпертекстової структури. Також роботи можуть допомогти в підтримці змісту і самої структури, перевіряючи відповідний HTML-документ, його відповідність прийнятим правилам, регулярні модернізації, і т.д., але це звичайно не використовується. 

Зазеркалювання

Зазеркалювання - популярний механізм підтримки FTP архівів. Дзеркало рекурсивно копіює повне дерево каталогів по FTP, і потім регулярно перезапитує ті документи, що змінилися. Це дозволяє розподілити завантаження між декількома серверами, успішно справитися з відмовленнями сервера і забезпечити більш швидкий і більш дешевий локальний доступ, так само як і автономний доступ до архівів. У Мережі Інтернет зазеркалювання може бути здійснене за допомогою робота, однак на час написання цього посібника ніяких складних засобів для цього не існувало. Потреба в механізмах зазеркалювання по причинах показників продуктивності набагато зменшується застосуванням складних кешуючих серверів, що пропонують вибіркову модернізацію, що може гарантувати, що кешований документ не обновився, і в значній мірі самообслуговується. Однак, очікується, що засоби зазеркалювання в майбутньому будуть розвиватися належним чином.  

Дослідження ресурсів

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

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

Комбіноване використання

Простий робот може виконувати більш ніж одну з вищезгаданих задач. Наприклад робот RBSE Spider виконує статистичний аналіз запитаних документів і забезпечує ведення бази даних ресурсів. Однак, подібне комбіноване використання зустрічається, на жаль, дуже рідко.  

Підвищення витрат і потенційні небезпеки при використанні пошукових роботів

Використання роботів може дорого обійтися, особливо у випадку, коли вони використовуються віддалено в Інтернеті. Роботи можуть бути небезпечні, тому що вони пред'являють занадто високі вимоги до Мережі. 

Мережний ресурс і завантаження сервера

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

Крім пред'явлення вимог до Мережі, робот також висуває додаткові вимоги до самого сервера. У залежності від частоти, з яким він запитує документи із сервера, це може привести до значного завантаження всього сервера і зниженню швидкості доступу інших користувачів, що звертаються до сервера. До того ж, якщо головний комп'ютер використовується також для інших цілей, це може бути взагалі неприйнятно. 

Усе це показує, що потрібно уникати ситуацій з одночасним запитом сторінок. На жаль, навіть сучасні браузери (наприклад, Netscape) створюють цю проблему, паралельно запитуючи зображення, що знаходяться в документі. Мережний протокол HTTP виявився неефективним для подібних передач і як засіб боротьби з подібними ефектами зараз розробляються нові протоколи.  

Відновлення документів

Як уже було згадано, бази даних, створювані роботами, можуть автоматично обновлятися. На жаль, дотепер не мається ніяких ефективних механізмів контролю за змінами, що відбуваються в Мережі. Більш того, немає навіть простого запиту, що міг би визначити, яке з посилань було вилучено, переміщене чи змінене. Протокол HTTP забезпечує механізм "If-Modified-Since", за допомогою якого агент користувача може визначити час модифікації кешованого документа одночасно з запитом самого документа. Якщо документ був змінений, тоді сервер передасть лише його вміст, тому що цей документ уже був прокешований.  

Роботи / агенти клієнта

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

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

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

"Інтелектуальні агенти" і "цифрові помічники", призначені для використання кінцевим користувачем, що шукає інформацію в Інтернет, є в даний час популярною темою досліджень у комп'ютерній науці, і часто розглядаються як майбутнє Мережі. У той же час це дійсно може мати місце, і уже очевидно, що автоматизація неоціненна для досліджень ресурсів, хоча потрібно проводити ще більше досліджень для того, щоб їх зробити їхнє використання ефективним. Прості керовані користувачем роботи дуже далекі від інтелектуальних мережних агентів: агент повинний мати деяке представлення про тім, де знайти визначену інформацію (то які послуги використовувати) замість того, щоб шукати її наосліп. 

Проблеми при каталогізації інформації

Безперечний той факт, що бази даних, наповнювані роботами, популярні. Однак, мається кілька проблем, що обмежують застосування роботів для дослідження ресурсів у Мережі. Одна з них полягає в тім, що тут знаходиться занадто багато документів, і усі вони постійно динамічно змінюються. 

Однієї з мір ефективності підходу до пошуку інформації є "відкликання" (recall), що містить інформацію про усіх відповідних документах, що були знайдені. Відкликання в системах, що індексують, Інтернет є цілком прийнятним підходом, тому що виявлення достатнє відповідних документів не проблема. Однак, якщо порівнювати всю множину інформації, доступної в Інтернет, з інформацією в базі даних, створеної роботом, то відкликання не може бути занадто точним, оскільки кількість інформації величезна і вона дуже часто змінюється. Так що практично база даних може не містити специфічного ресурсу, що доступний в Інтернет у даний момент, і таких документів буде безліч, оскільки Мережа безупинно росте.