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 у постачальниках.