Главная Обратная связь

Дисциплины:






ТВП для инвертированного файла



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

Однако словарь сам по себе не является достаточным для обеспечения механизмов поиска, так как каждый термин должен быть связан со всеми теми записями базы данных, в которых он встречается. В связи с этим, система связывает с каждым поисковым термином словаря список индексных ссылок, обеспечивающих требуемую связь с записями. Каждый термин имеет столько индексных ссылок, сколько раз он встречается в базе данных.

Более того, для поддержки развитых средств поиска, имеющихся в языке поиска, таких, например, как поиск по ключевым словам в определенных элементах описания, каждая индексная ссылка содержит помимо MFN записи некоторую дополнительную информацию, имеющую отношение к расположению термина в записи.

Индексная ссылка имеет следующие 4 компоненты:

 

MFN записи, содержащей термин. Эта компонента вводится в состав индексной ссылки при актуализации/формировании словаря автоматически.  
Идентификатор поля, используемый в процессе поиска при указании квалификатора (см. Приложение 6). Эта компонента вводится в состав индексной ссылки на основе ТВП. Обратите внимание на то, что один и тот же идентификатор поля может быть присвоен различным полям, указанным в формате выборки.
Номер экземпляра (повторения) повторяющегося поля, необходимый для осуществления поиска на уровне поля и операторов близости расположения терминов в повторяющихся полях (в АРМах ИРБИС это используется при поиске по логике «И (в поле)»). Для того, чтобы можно было использовать указанный метод поиска (обычно для этого необходим метод индексирования 4 или 8), необходимо определить формат в ТВП таким, чтобы в его выходных данных между экземплярами повторяющегося поля располагался знак процента (%), для чего нужно задать его в качестве повторяющегося суффикс-литерала. Например, строка ТВП для инвертирования повторяющегося поля 10 должна содержать формат v10|%|. Система перед обработкой каждой строки ТВП устанавливает номер повторения в 1 и затем увеличивает его на 1 всякий раз, когда в созданном форматом тексте встречается символ %.
 
Последовательный номер термина, необходимый для осуществления поиска по близости расположения терминов (в АРМах ИРБИС это используется при поиске по логике «И (фраза)»). Управление присвоением данного номера происходит следующим образом: он устанавливается в 1 перед обработкой каждой строки ТВП и при изменении номера повторения и увеличивается на 1 для каждого элемента, созданного указанным методом индексирования. Например, предположим, что в повторяющемся поле 331 содержится краткое содержание литературного источника, причем каждое повторение состоит из одного абзаца. Пусть данное поле проиндексировано методом 4. Если определить формат выборки данных mdl,v331|%|, то начиная с каждого абзаца краткого содержания словам будет присваиваться последовательный номер, начиная с 1 в каждом абзаце, а если бы формат выборки был равным mdl,v331, то словам присваивался бы сквозной последовательный номер по всему краткому содержанию, например, первое слово второго абзаца имело бы последовательный номер на 1 больше номера последнего слова первого абзаца.

 



Необходимо помнить, что изменения ТВП для инвертированного файла, как правило, требуют последующего переинвертирования (т.е. создания словаря заново) самой базы данных, так как инвертированный файл, созданный по старой ТВП, может не соответствовать новой ТВП.

Наряду с таблицей инвертирования БД (<dbname>.FST) МОЖЕТ использоваться ТАБЛИЦА АКТУАЛИЗАЦИИ (начиная с версии 2012.1) - <dbname>.IFS – на основе которой выполняется УСКОРЕННЫЙ процесс актуализации записей при их создании/корректировке. Таблица актуализации создается ИСКЛЮЧИТЕЛЬНО на основе таблицы инвертирования и является ее ОДНОЗНАЧНЫМ следствием ("придатком"). Отличие таблицы актуализации от таблицы инвертирования только лишь в структуре первого элемента (если смотреть через Редактор РЛ - это первая колонка). В таблице инвертирования это т.н. "точка входа". В таблице актуализации - в первом элементе дополнительно к точке входа указываются (через запятую) МЕТКИ полей, имеющих отношение к данной строке (т.е. метки тех полей, которые используются в соответствующем формате - третьем элементе таблицы).

Схематичный пример строки таблицы инвертирования:

100 0 .....v100......v200......v300....

Ей будет соответствовать следующая строка таблицы актуализации:

100,100,200,300 0 .....v100......v200......v300....

В случае отсутствия таблицы актуализации (в папке БД) процесс собственно актуализации выполняется СТАНДАРТНО, т.е. на основе таблицы инвертирования.





sdamzavas.net - 2017 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...