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


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


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

Функция поиска изданий по сводному каталогу.

Параметры

Таблица 1. Параметры функции Search
Параметр Тип Описание
$dbn string Имя БД для поиска
$exp string Поисковое выражение на языке ИРБИС
$seq string Формат для последовательного поиска
$format string Формат, в котором вернуть результат поиска. Например: @ - Формат по умолчанию, @brief – краткое описание
$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

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

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

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

Если параметр $asJson установлен в true, то для каждого результата расформатирования происходит попытка преобразования в объект json. Если преобразование в json не успешно - возвращается исходная строка (результат формата).

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

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

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

// Логин и пароль для подключения
$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);

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

Всего запросу соответствует 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',
        ),
      ),
    ),
  ),
))