словнику, з якого ці терміни вибираються, як про фіксовану сукупності термінів. У традиційних системах існувало розбиття на системи з контрольованим словником і системи з вільним словником. Контрольований словник припускав ведення деякої лексичної бази даних, додавання термінів у яку вироблялося адміністратором системи, і всі нові документи могли бути заіндексувати тільки тими термінами, які були в цій базі даних. Вільний словарь поповнювався автоматично у міру появи нових документів. Однак на момент актуалізації словник також фіксувався. Актуалізація передбачала повне перезавантаження бази даних. У момент цього оновлення перевантажувалися самі документи, і оновлювався словник, а після його поновлення вироблялася переіндексація документів. Процедура актуалізації займала досить багато часу і доступ до системи в момент її актуалізації закривався.
Тепер уявімо собі можливість такої процедури в анархічною Internet, де ресурси з'являються і зникають щодня. При створенні програми Veronica для GopherSpace передбачалося, що всі сервери повинні бути зареєстровані, і таким чином вівся облік наявності або відсутності ресурсу. Veronica раз на місяць перевіряла наявність документів Gopher і оновлювала свою базу даних ПІД для документів Gopher. У World Wide Web нічого подібного немає. Для вирішення цього завдання використовуються програми сканування мережі або роботи-індексіровщікі [8]. Розробка роботів - це досить нетривіальне завдання; існує небезпека зациклення робота або його потрапляння на віртуальні сторінки. Робот переглядає мережу, знаходить нові ресурси, приписує їм терміни і поміщає в базу даних індексу. Головне питання полягає в тому, що за терміни приписувати документам, звідки їх брати, адже ряд ресурсів взагалі не є текстом. Сьогодні роботи зазвичай використовують для індексування наступні джерела для поповнення своїх віртуальних словників: гіпертекстові посилання, заголовки, заголовки (H1, H2), анотації, списки ключових слів, повні тексти документів, а також повідомлення адміністраторів про свої Web-сторінках [9]. Для індексування telnet, gopher, ftp, нетекстової інформації використовуються головним чином URL, для новин Usenet і поштових списків поля Subject і Keywords. Найбільший простір для побудови ПІД дають HTML документи. Однак не слід думати, що всі терміни з перерахованих елементів документів потрапляють в їх пошукові образи. Дуже активно застосовуються списки заборонених слів (Stop-words), які не можуть бути вжиті для індексування, загальних слів (Прийменники, спілки тощо). Таким чином навіть те, що в OpenText, наприклад, називається повнотекстових індексуванням реально є вибором слів з тексту документа і порівнянням з набором різних словників, після якого термін потрапляє в ПОД, а потім і в індекс системи. Для того щоб не роздмухувати словників та індексів (індекс системи Lycos вже сьогодні дорівнює 4 Тбайт), застосовується таке поняття, як вага терміна [10]. Документ зазвичай індексується через 40 - 100 найбільш "важких" термінів.
Індекс пошуку
Потому як ресурси заіндексувати і система склала масив ПІД, починається побудова пошукового апарату. Цілком очевидно, що лобовий перегляд файлу або файлів ПІД займе багато часу, що абсолютно не прийнятне для інтерактивної системи WWW. Для прискорення пошуку будується індекс, яким в більшості систем є набір пов'язаних між собою файлів, орієнтованих на швидкий пошук даних за запитом. Структура і склад індексів різних систем можуть відрізнятися один від одного і залежать від багатьох факторів: розмір масиву пошукових образів, інформаційно-пошукова мова, розміщення різних компонентів системи і т.п. Розглянемо структуру індексу на прикладі системи [6], для якої можна реалізовувати не тільки примітивний булевий, а й контекстний і зважений пошук, а також ряд інших можливостей, відсутні в багатьох пошукових системах Internet, наприклад Yahoo. Індекс розглянутої системи складається з таблиці ідентифікаторів сторінок (page-ID), таблиці ключових слів (Keyword-ID), таблиці модифікації сторінок, таблиці заголовків, таблиці гіпертекстових зв'язків, інвертованого (IL) і прямого списку (FL).
Page-ID відображає ідентифікатори сторінок в їх URL, Keyword-ID - кожне ключове слів в унікальний ідентифікатор цього слова, таблиця заголовків - ідентифікатор сторінки в заголовок сторінки, таблиця гіпертекстових посилань - ідентифікатор сторінок в гіпертекстове посилання на цю сторінку. Інвертований список ставить у відповідність кожному ключовому слову документа список пар - ідентифікатор сторінки, позиція слова в сторінці. Прямий список - це масив пошукових образів сторінок. Всі ці файли так чи інакше використовуються при пошуку, але Головним серед них є файл інвертованого списку. Результат пошуку в даному файлі - це об'єднання та/або перетин списків ідентифікаторів сторінок. Результуючий список, який перетворюється в список заголовків, забезпечених гіпертекстовими посиланнями повертаєть...