В Интернете подобный поиск будет длиться максимум несколько секунд, при этом будут обработаны значительно большие объёмы данных. Постарайтесь вспомнить, за счёт чего так быстро происходит поиск в Интернете. Как это связано с индексацией данных? Используются ли аналогичные возможности в современных операционных системах?
Если проверять каждый документ по очереди при каждом запросе, время поиска росло бы вместе с количеством документов. Поэтому сведения о документах заранее упорядочивают в поисковом индексе. Индекс похож на предметный указатель в конце книги: по слову можно найти, где оно встречается, не перелистывая все страницы.
При подготовке индекса система выделяет из документов поисковые признаки, например слова, и связывает их с документами, где эти слова находятся. Когда пользователь вводит запрос, система сначала обращается к готовому индексу, находит подходящие документы, а затем показывает результаты. Быстрый ответ объясняется тем, что основная работа по составлению указателя выполнена до запроса. При появлении новых документов индекс необходимо обновлять, иначе новые сведения могут не попасть в результаты поиска.
Аналогичный подход применяется и в операционных системах. В настройках поиска можно указать, какие папки и свойства файлов индексировать. Тогда система заранее учитывает имена файлов и, для поддерживаемых типов, их содержимое. По запросу она находит файлы через индекс значительно быстрее, чем при последовательном просмотре каждого файла. Если нужная папка не индексируется, поиск в ней может потребовать непосредственной проверки файлов и занять больше времени.
Следовательно, индексация ускоряет повторяющиеся поисковые запросы как по большому набору документов, так и по файлам компьютера.
Быстрый поиск обеспечивается заранее созданным и обновляемым поисковым индексом: по запросу находят записи указателя, а не просматривают все документы подряд. Современные операционные системы также индексируют файлы для ускорения поиска.
