Инвертированные индексы

Факт, что в документальных БД поиск обычно проводится по многим ключам доступа, означает, что с точки зрения системы хранение записей в последовательности, определенной единичным ключом доступа, непрактично. Вообще на процессы поиска и выдачи последовательность записей в файле не оказывает большого влияния. Определенная последовательность может быть важна для пользователя только при выводе (например, выданные записи должны быть выведены в алфавитном порядке по автору). Это делается функцией сортировки при генерировании выдачи или отчета.

Программное обеспечение для документальных БД обычно содержит записи в том порядке, в котором они добавляются в файл. Таким образом, пополнение файла происходит по мере добавления новых записей в конец файла. Такой файл называется последовательным, или линейным.

Ниже приводятся две записи из линейного файла библиографической БД:

AN  
TI The Three Little Pigs
AU Mother Goose
PU Wee Press
CY London
PY  
AB Real-life testing of house construction methods Demonstrates advantages and disadvantages of straw, sticks, and bricks
DE Swine, Miniature, Residential Auhitecture
ID Wolf, Big Bad
AN  
TI The House That Jack Built
AU Mother Goose PU Children's Book Company Inc.
CY New York
PY  
AB Construction tips for novices. Describes occupants of Jack's house.
DE Residential Architecture; Animals in fiction
ID Jack

Если БД содержит небольшое количество записей, поиск в БД может проводиться путем поочередного перебора значений в каждом поле и в каждой записи во всем массиве линейного файла. Например, чтобы найти записи, содержащие термин „construction", система начнет поиск с номера записи 001. Начиная с первого поля (AN - номер доступа) компьютер будет по очереди перебирать каждый символ, пока не найдет в поле „реферат" (АВ) набор знаков, составляющих слово CONSTRUCTION. Система доложит пользователю, что данная запись содержит искомое слово. В зависимости от используемого программного обеспечения система затем или немедленно выдаст на экран найденную запись, или запомнит ее для выдачи всего списка найденных записей после окончания поиска, а пока продолжит последовательный поиск в линейном файле. Как видно, такой подход несколько непрактичен. Использование логических комбинаций (например, CONSTRUCTION and TESTING) еще более увеличит временные затраты на поиск.

Для ускорения процесса выдачи и предоставления более обширных поисковых функций практически все информационно-поисковые системы сегодня используют инвертированную индексацию. Инвертированные индексы (также называемые словарными файлами) представляют собой список выбранных из линейного файла поисковых слов или фраз, помещенный в отдельный, организованный в алфавитном порядке файл, со ссылками на определенную часть записи в линейном файле. Ниже приводится пример инвертированного файла, который поддерживает доступ к отдельным элементам данных.

ЭЛЕМЕНТ» ЗАПИСЬ ПОЛЕ ПОЗИЦИЯ ДАННЫХ
    PV  
    РУ  
advantages   ab  
animals   dc  
animals in fiction   dc 03-05
architecture   dc  
    dc  
bad   id  
big   id  
bricks   ab  
built   ti  
construction   ab  
    ab  

Элемент Запись Поле Позиция данных
demonstrates   ab  
describes   ab  
disadvantages   ab  
fiction   de  
house   ab  
    ti  
    ab  
lack   h  
    id  
lack s   ab  
hfc   ab  
little   h  
methods   ab  
miniature   de  
mother goose   a u  
    an  
novices   ab  
occupants   ab  
pigs   ti  
real-life   ab  
residential   dc  
    dc  
residential      
architecture   de 03 04
    di 01 02
wolf, big bad   id 01 03

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: