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