Quick Reference For Attribute Fields
(eg: "@attr 2=" refers to the Relation attribute)
1 = Use Field
2 = Relation
3 = Position
4 = Structure
5 = Truncate
6 = Completeness
(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)
yaz_search — Подготовка поиска
yaz_search() подготавливает поиск на заданном соединении.
Также как и yaz_connect() эта функция неблокирующая и только подготавливает условия поиска, который будет выполнен функцией yaz_wait().
id
Дескриптор соединения, возвращаемый функцией yaz_connect().
type
Данный параметр представляет собой тип запроса. Поддерживается только тип
"rpn"
. В этом случае третий аргумент определяет запрос Type-1
в префиксной нотации запросов.
query
Запрос RPN является текстовым представлением запроса Type-1, как указано
в стандарте Z39.50. Тем не менее в текстовом представлении, используемом
в YAZ, применяется префиксная нотация, т.е. оператор предшествует операнду.
Строка запроса представляет собой последовательность лексем(токенов), в которой
игнорируются пробельные символы, кроме тех, что находятся между двойными кавычками.
Лексемы, которые начинаются с символа @
являются операторами, иначе
они воспринимаются как поисковый термин.
Конструкция | Описание |
---|---|
@and query1 query2 |
пересечение query1 и query2 |
@or query1 query2 |
объединение query1 и query2 |
@not query1 query2 |
query1 и не query2 |
@set name |
ссылка на набор возвращаемых значений |
@attrset set query |
определяет набор атрибутов set для
запроса query . Эта конструкция доступна
только один раз - в самом начале запроса.
|
@attr [set] type=value query |
устанавливает атрибуты запроса. Значения type и
value - целочисленные и определяют тип атрибута и
тип значения соответственно.
Значение set , если оно задано, определяет настройку атрибутов.
|
Всю информацию о доступных атрибутах вы можете найти на сайте » Z39.50 Maintenance Agency
Замечание:
Если вы хотите использовать более дружественную нотацию, используйте CCL парсер - функции yaz_ccl_conf() и yaz_ccl_parse().
Функция возвращает true
в случае успешного выполнения или false
, если возникла ошибка.
Пример #1 Примеры запросов
Вы можете использовать простые термы, например:
computer
запрос
"knuth donald"
Запрос содержит два атрибута для одной фразы.
запрос
@and @or a b @not @or c d e
(a или b) и ((c или d) и не
e)
.
ещё один более сложный запрос:
@attrset gils @and @attr 1=4 art @attr 1=2000 company
art
встречается в заглавии (GILS,BIB-1)
и company
в поставщиках.
Quick Reference For Attribute Fields
(eg: "@attr 2=" refers to the Relation attribute)
1 = Use Field
2 = Relation
3 = Position
4 = Structure
5 = Truncate
6 = Completeness
To display holdings data set the syntax and the record format to "opac" (at least for Horizon ILS). It will give you an xml, containg <holding> elements with all info:
<?php
$z = yaz_connect(...
yaz_syntax($z, 'opac');
yaz_search($z, 'rpn', '@attr 1=4 "title%"');
yaz_wait();
$hits = yaz_hits($z);
yaz_range($z, 1, $hits);
yaz_present($z);
for($i = 1; $i <= $hits; $i++)
my_display(yaz_record($z, $i, 'opac'));
yaz_close($z);
function my_display($s)
{
$lines = explode("\n", trim($s));
var_dump($lines);
}
?>