НАЧАЛО >> Провайдер данных к Web-ИРБИС >> Получение словаря терминов📄 Скачать в DOCX
Функция GetTermList получает список терминов словаря через Web-ИРБИС и используется в сценариях поиска, где пользователю нужно выбрать или уточнить поисковый термин.
Способ чтения словаря задает параметр PROVIDER.TERMREADMODE:
1 - используется команда T Web-ИРБИС; это основной режим для современных версий.0 - используется разбор HTML-ответа по регулярному выражению; этот режим нужен для старых установок Web-ИРБИС.Для режима 0 дополнительно используются параметры:
PROVIDER.TERMPREG - регулярное выражение для разбора HTML-страницы;PROVIDER.TERMPREGCOLREFS - номер группы с количеством ссылок на термин;PROVIDER.TERMPREGCOLTERMS - номер группы с текстом термина.При чтении терминов провайдер передает в Web-ИРБИС:
T21PRF - префикс вида поиска;T21TRM - начальный термин;T21CNR - количество возвращаемых терминов;Z21ID - идентификатор авторизованной сессии, если он используется.Если текущая база имеет ограничение источника поиска, провайдер может добавить параметр S21All. Он формируется из выражения источника и уточняет список терминов по запросу.
Выражение берется из записи текущей базы данных через настройку источника всех записей (GetAllSrc). Обычно это ограничение по коллекции, владельцу или другому признаку логической базы. Благодаря этому пользователь видит в словаре только термины, которые относятся к разрешенному набору записей, а термины без результатов в текущем контексте не попадают в список.
Если в записи базы не задано специальное выражение источника, используется стандартное выражение для всех записей. Это сохраняет обычное поведение словаря для баз без логического ограничения.
Параметр S21All добавляется только для хоста Web-ИРБИС, в URL которого есть irbis_webcgi.exe. Для других хостов провайдер не пытается получить и преобразовать выражение источника. Это защищает подключения к старым или несовместимым веб-модулям: словарь терминов продолжает запрашиваться без дополнительного уточнения, а неподдерживаемая операция не вызывает ошибку.
Для современных установок рекомендуется:
| Параметр | Значение |
|---|---|
PROVIDER.HOST |
URL CGI Web-ИРБИС с irbis_webcgi.exe |
PROVIDER.TERMREADMODE |
1 |
Для старых установок, где команда T недоступна, используйте TERMREADMODE=0 и настройте параметры TERMPREG, TERMPREGCOLREFS, TERMPREGCOLTERMS под фактический HTML-ответ.
После настройки проверьте получение словаря через пользовательский поиск или через API, который вызывает GetTermList. Если используется современный Web-ИРБИС, список терминов должен возвращаться с учетом доступного уточнения по источнику. Если подключение идет к хосту без irbis_webcgi.exe, отсутствие S21All является штатным поведением.