Последовательность операций по обработке пользовательского запроса можно представить состоящей из нескольких этапов:
Предпроцессинг
Выполнение команды пользователя
Объединение и обработка фреймов
Полная последовательность операция шлюза такова:
Чтение параметров INI файла
Предпроцессинг
Формальный контроль правильности параметров
Интерпретация поискового запроса
Авторизация
Выполнение скрипта защиты
Повторная авторизация
Выполнение поиска
Формирование ответа
Определение HTTP заголовков на основе INI файла
Возврат ответа.
В случае возникновения ошибки выполнения или превышения времени обработки запроса, шлюз возвращает ошибку(error.html)
Предпроцессинг WEB ИРБИС Скрипт-защита
Формат скрипта защиты выполняет две функции: 1) проверку поступивших параметров запроса и защиту от взлома 2) обработку и дополнение параметров.
Первая строка, сформированная форматом срипт-защиты, определяет общий результат – если это 0 или файлом не было возвращено никаких значений – скрипт-защита определила ошибку, если результат 1 или файлом были возвращены другие ненулевые значения – ошибки нет. В первом случае шлюз возвращает error.html, в последнем случае шлюз читает остальные строки формата и изменяет параметры запроса на новые.
Например, строка ‘SCRIPT_DONE=YES’/ задаёт параметру SCRIPT_DONE значение YES.
Авторизация пользователя
Авторизация даёт возможность заказывать литературу, просматривать формуляр и редактировать корзину заказов.
Для авторизации используется база RDR. Авторизация происходит по идентификатору и, если в пользовательском запросе задан параметр Z21FLAGID=1, – по фамилии. После авторизации шлюз выполняет шифрование идентификатора, и зашифрованный идентификатор передаётся при переходе по страницам.
Команды WEB ИРБИС Принципы выполнения команд WEB ИРБИС
Текущая команда WEB ИРБИС задаётся значением параметра С21COM. Как и названия параметров, она должна вводиться в верхнем регистре. По заданной команде обычно читается последовательность фреймов из секции [значение параметра I21DBN] INI файла WEB ИРБИС. Но возможен так же вывод произвольного фрейма, название которого задано в параметр S21FRAME с использованием произвольной базы указанный в параметре I21DBN.
Ниже приводится список соответствий команды и параметра, определяющего последовательность фреймов. В скобках - значение C21COM.
ShowFrames – команда “показ”(F).
SearchFrames - команда выполнения и показа результатов поиска - “поиск”(S).
DictionryFrames - команда показа терминов словаря - “словарь”(T).
ZakazFrames - команда отбора записей в корзину заказов - “заказ”(Z)
RecUpdateFrames - команда редактуры записей- “запись” (R)
Команды выгрузки записей – «экспорт»(E), чтения внешнего файла – «файл»(2), заимствования записи – «скачать»(4), выгрузки двоичного объекта – «интегрированный файл» (3), удалённого поиска «количество найденных»(G) не требуют задания последовательности фреймов, так как шлюз выдает в результате своей работы не HTML страницу.
Важно отметить, что во всех случаях одновременно WEB ИРБИС может выполнить только одну команду.
Команда вывода HTML страницы - “показ”(F)
Команда F обычно используется для показа поисковых форм и, как правило, в ней задействованы лишь основные параметры: C21COM, I21DBN, P21DBN, Z21DBN. Но при наличии запроса(S21ALL) она работает полностью аналогично команде S
Пример запроса для показа страницы расширенного поиска:
http://127.0.0.1/cgi-bin/irbis64r_01/cgiirbis_64.exe?C21COM=F&I21DBN=IBIS_EX&P21DBN=IBIS
Образец кода, формирующего запрос: dbname.frm
Команда поиска - “поиск”(S)
Команда S обычно используется для показа результатов поиска. В ней могут одновременно применяться поиск по словарю, последовательный поиск(по элементам, которые не индексируются) и полнотекстовый поиск с ранжированием.
Задание на поиск по словарю обычно формируется из набора поименованных параметров *S21P***
*S21STR – поисковый элемент;
*S21LOG – логика объединения слов из поискового элемента между собой;
*S21P01 – способ разбиения поискового элемента S21STR;
*S21P02 – необходимость применения правого усечения;
*S21P03 – префикс словаря;
*S21P04 – квалификатор;
*S21P05 – не используется
*S21P06, S21P07 – границы поиска по диапазону терминов словаря
Пример поискового запроса, по ключевому слову «история»
http://127.0.0.1/cgi-bin/irbis64r_01/cgiirbis_64.exe?I21DBN=IBIS&P21DBN=IBIS&S21STN=1&S21REF=3&S21FMT=fullwebr&C21COM=S&S21CNR=20&S21P01=0&S21P02=0&S21LOG=1&S21P03=K=&S21STR=история
Уже в скрипте защиты заданный таким образом поисковый запрос преобразуется к запросу на языке ИРБИС и доступен в виртуальном поле, соответствующем параметру S21ALL(по умолчанию 2226).
При наличии в запросе как параметров *S21**, так и запроса S21ALL происходит их объединение логикой, определённой S21LOG.
Последовательный поиск задается параметрами(в скобках указаны метки по умолчанию):
S21SCAN_FULL – определяет необходимость полного сканирования базы.
S21SCAN(1013) – определяет файл с поисковым форматом
Пример поискового запроса на последовательный поиск в базе RQST с использованием формата basket:
http://127.0.0.1/cgi-bin/irbis64r_01/cgiirbis_64.exe?C21COM=S&I21DBN=RQST&S21SCAN=basket&S21SCAN_FULL=1&S21FMT=RQST_WEB&Z21ID=4444&P21DBN=IBIS
Образец кода, формирующего запрос: author_3.frm
При наличии поискового запроса по словарю, установке S21SCAN_FULL=0 и указании значения S21SCAN вначале выполняется поиск по словарю, а затем последовательный поиск.
Полнотекстовый поиск определяется двумя основными параметрами(в скобках указаны метки по умолчанию):
FT_REQUEST(3335) – запрос в произвольной форме
FT_PREFIX(3337) – префикс словаря
Пример полнотекстового поискового запроса на фразу «история России»
http://127.0.0.1/cgi-bin/irbis64r_01/cgiirbis_64.exe?C21COM=S&I21DBN=IBIS&P21DBN=IBIS&S21STN=1&S21CNR=20&FT_REQUEST=история россии&FT_PREFIX=K=
При объединении поиска по словарю и полнотекстового поиска сначала выполняется полнотекстовый поиск, а поиск по словарю и последовательный поиск используется для уточнения результатов.
Более подробное описание всех поисковых параметров приведено в Приложении 1.
Достарыңызбен бөлісу: |