Функция Search($dbn, $exp, $seq, $format, $numMfn = 20, $firstMfn = 0, $Min = 0, $Max = 0, $SortBy = '', $AscSortDir = true, $UseCacheInSearch = false, $asJson = false)


НАЧАЛО >> API ИРБИС 64/128 >> JSON-RPC API модуля API >> Функция Search($dbn, $exp, $seq, $format, $numMfn = 20, $firstMfn = 0, $Min = 0, $Max = 0, $SortBy = '', $AscSortDir = true, $UseCacheInSearch = false, $asJson = false)📄 Скачать в DOCX


1. Описание функции

Функция выполняет поиск записей в указанной базе данных и возвращает результаты в заданном формате.

2. Параметры

Таблица 1. Параметры функции Search
Параметр Тип Описание
$dbn string Имя БД для поиска
$exp string Поисковое выражение на языке ИРБИС
$seq string Формат для последовательного поиска
$format string Формат, в котором нужно вернуть результат поиска. Например: @ - формат по умолчанию, @brief - краткое описание, @API/info - JSON-структура библиографической записи
$numMfn integer Количество записей в порции результатов
$firstMfn integer Номер первой записи в порции результатов
$Min integer Минимальный MFN результата. Если задано 0, ограничение не применяется. По умолчанию 0
$Max integer Максимальный MFN результата. Если задано 0, ограничение не применяется. По умолчанию 0
$SortBy string Ключ сортировки. Если передана пустая строка, сортировка не применяется. По умолчанию ''
$AscSortDir bool Если true, сортировка выполняется по возрастанию. По умолчанию true
$UseCacheInSearch bool Если true, используется кеш поиска. По умолчанию false
$asJson bool Если true, каждый элемент результата форматирования обрабатывается через json_decode. По умолчанию false

3. Возвращаемые значения

Массив с результатами расформатирования записей. Нулевой элемент массива содержит количество найденных записей. Если количество возвращаемых записей больше 0, первый и последующие элементы содержат результат расформатирования.

В общем случае каждый результат расформатирования возвращается строкой.

Если параметр $asJson установлен в true, функция пытается преобразовать каждый результат расформатирования через json_decode. Этот режим полезен для форматов, которые возвращают JSON-строку, например @API/info: вместо строки клиент получает объект или массив, разобранный средствами JSON-RPC клиента.

Нулевой элемент результата с количеством найденных записей не преобразуется. Если один из элементов не удалось разобрать как JSON, функция возвращает текущий массив результата без исключения; неразобранные элементы остаются строками формата.

Подробное описание структуры @API/info приведено в разделе Формат API/info для библиографических записей.

4. Пример на языке PHP

// Подключение класса JSON-RPC 2.0 клиента
require_once('BaseJsonRpcClient.php');

// URL подключения к API сервера
$entryUrl = 'https://example.org/JSONRPC.php?i128Module=API';
// Использовать ли SSL
$ssl = true;

// Логин и пароль для подключения
$login = '';
$password = '';

// Создание подключения
$api = new BaseJsonRpcClient($entryUrl, $ssl, $login, $password);

// Установка параметров для вызова
$dbn = 'IBIS';
$exp = 'A=$';
$seq = '';
$format = '@API/info';
$numMfn = 1;
$firstMfn = 1;
$Min = 0;
$Max = 0;
$SortBy = '';
$AscSortDir = true;
$UseCacheInSearch = false;
$asJson = true;

// Выполнение поиска записей с указанными авторами по БД IBIS с запросом первой записи результата поиска
$result = $api->Search($dbn, $exp, $seq, $format, $numMfn, $firstMfn, $Min, $Max, $SortBy, $AscSortDir, $UseCacheInSearch, $asJson);

// Вывод полученного результата
var_export($result);

В адресе example.org укажите адрес сервера ИРБИС 128.

Результат работы скрипта:

Всего запросу соответствует 177 записей, возвращена информация о первой из них в формате API/info.

BaseJsonRpcCall::__set_state(array(
   'Id' => 1,
   'Method' => 'Search',
   'Params' => 
  array (
    0 => 'IBIS',
    1 => 'A=$',
    2 => '',
    3 => '@API/info',
    4 => 1,
    5 => 1,
    6 => 0,
    7 => 0,
    8 => '',
    9 => true,
    10 => false,
    11 => true,
  ),
   'Error' => NULL,
   'Result' => 
  array (
    0 => 177,
    1 => 
    (object) array(
       'brief' => 'Колисниченко, Денис Николаевич. Android для пользователя : полезные программы и советы / Денис Колисниченко, 2013. - 254 с.',
       'examplarInfo' => 
      array (
        0 => 
        (object) array(
           'total' => 
          (object) array(
             'count' => 0,
          ),
           'free' => 
          (object) array(
             'count' => 0,
             'inventories' => 
            array (
            ),
          ),
           'busy' => 
          (object) array(
             'count' => 0,
             'inventories' => 
            array (
            ),
          ),
           'place_of_store' => 'ХР',
        ),
        1 => 
        (object) array(
           'total' => 
          (object) array(
             'count' => 0,
          ),
           'free' => 
          (object) array(
             'count' => 0,
             'inventories' => 
            array (
            ),
          ),
           'busy' => 
          (object) array(
             'count' => 0,
             'inventories' => 
            array (
            ),
          ),
           'place_of_store' => NULL,
        ),
      ),
       'title' => 'Android для пользователя : полезные программы и советы',
       'interestingArticles' => '',
       'onTabs' => '',
       'documentType' => 'Однотомное издание',
       'publicationCode' => '004.4/К 60-460343092',
       'authors' => 'Колисниченко, Денис Николаевич',
       'unifiedFormHeader' => '',
       'parallelTitles' => '',
       'transliteratedTitle' => '',
       'imprint' => 'Санкт-Петербург: БХВ-Петербург, 2013',
       'quantitativeCharacteristics' => '254 с.: ил + 24 см',
       'teams' => '',
       'series' => '',
       'misreadTitles' => '',
       'translationOfThePublication' => '',
       'parallelEditions' => '',
       'braided' => '',
       'placeOfPublication' => '',
       'typeAndVolumeOfResource' => '',
       'systemRequirements' => '',
       'notes' => 'Указ.',
       'issn' => '',
       'isbn' => '978-5-9775-06 80-9: 130.50 р.',
       'identificationNumber' => '',
       'grnti' => '20.53.31',
       'udc' => '004.4',
       'bbk' => 'З884.16-56-05,0',
       'subjectHeadings' => 'Радиоэлектроника -- Электрическая связь -- Радиосвязь -- Радиотелефонная связь; Мобильная связь -- Радиотелефоны; Вычислительная техника -- Вычислительные машины электронные цифровые -- Автоматическая обработка информации; ANDROID, операционная система -- Программирование',
       'meshMain' => '',
       'meshNonMain' => '',
       'geographicalHeadings' => '',
       'descriptor' => '',
       'keywords' => '',
       'content' => '',
       'annotation' => '',
       'receiptsRegistered' => '',
       'thePublicationCanBeFoundIn' => '',
       'url' => 
      array (
        0 => 
        (object) array(
           '*' => '',
           'A' => 'Пример PDF-файла.pdf',
           'T' => 'Пример PDF-файла',
           'N' => '14',
        ),
      ),
    ),
  ),
))