yaz_search

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_searchПодготовка поиска

Описание

yaz_search(resource$id, string$type, string$query): bool

yaz_search() подготавливает поиск на заданном соединении.

Также как и yaz_connect() эта функция неблокирующая и только подготавливает условия поиска, который будет выполнен функцией yaz_wait().

Список параметров

id

Дескриптор соединения, возвращаемый функцией yaz_connect().

type

Данный параметр представляет собой тип запроса. Поддерживается только тип "rpn". В этом случае третий аргумент определяет запрос Type-1 в префиксной нотации запросов.

query

Запрос RPN является текстовым представлением запроса Type-1, как указано в стандарте Z39.50. Тем не менее в текстовом представлении, используемом в YAZ, применяется префиксная нотация, т.е. оператор предшествует операнду. Строка запроса представляет собой последовательность лексем(токенов), в которой игнорируются пробельные символы, кроме тех, что находятся между двойными кавычками. Лексемы, которые начинаются с символа @ являются операторами, иначе они воспринимаются как поисковый термин.

Операторы RPN
КонструкцияОписание
@and query1 query2пересечение query1 и query2
@or query1 query2объединение query1 и query2
@not query1 query2query1 и не 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
которые находят совпадения слова "computer" в документах. Атрибуты не определены.

запрос

"knuth donald"
находит документы, где встречается фраза "knuth donald" (предполагается, что сервер поддерживает поиск по фразам).

Запрос содержит два атрибута для одной фразы.

@attr 1=1003 @attr 4=1 "knuth donald"
Первый атрибут имеет тип 1 (используется Bib-1), значение которого равно 1003(Автор). Второй атрибут имеет тип 4 (структура), со значением 1 (фраза). Таким образом данный запрос будет искать документы автор которых Donald Knuth.

запрос

@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
Весь запрос будет использовать набор атрибутов GILS. Запрос ищет документы, где art встречается в заглавии (GILS,BIB-1) и company в поставщиках.
To Top