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

# yaz_search

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

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

### Описание

function 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 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

которые находят совпадения слова "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` в поставщиках.
`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open