yaz_search

(PHP 4 >= 4.0.1, PECL)

yaz_search -- Prépare une recherche

Description

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

yaz_search() prépare une recherche sur la connexion donnée

Comme pour yaz_connect(), cette fonction n'est pas bloquante et ne fait que préparer la recherche pour exécution ultérieure lorsque yaz_wait() est appelée.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

type

Ce paramètre représente le type de requête - seul "rpn" est supporté actuellement, et dans ce cas, le troisième argument est un préfixe de notation de requête utilisé par YAZ.

query

Les requêtes RPN sont des représentations textuelles des requêtes de type Type-1, comme définit dans le standard Z39.50. Cependant, dans la représentation textuelle utilisée par YAZ, une notation à préfixage est utilisée, c'est-à-dire que l'opérateur précède l'opérande. La chaîne de requête est une séquence de mots réservés, où les espaces sont ignorés, à moins qu'ils n'aient été mis entre guillemets doubles. Les mots réservés qui commencent par un arobase (@) sont considérés comme des opérateurs et traités comme tels.

Tableau 1. Opérateurs RPN

SyntaxeDescription
@and query1 query2intersection des requêtes query1 et query2
@or query1 query2union des requêtes query1 et query2
@not query1 query2requêtes "query1 et non(query2)"
@set namenomme le résultat
@attrset set queryspécifie le jeu d'attributs de la requête. Cette construction n'est autorisée qu'une seule fois, au début d'une requête.
@attr [set] type=value queryApplique les attributs à une requête. Le type et la valeur sont des entiers indiquant les types et valeurs des attributs, dans cet ordre. Le jeu, si fourni, spécifie le jeu d'attributs utilisé.

Vous pouvez trouver des informations sur les attributs sur le site Z39.50 Maintenance Agency.

Note : Si vous voudriez utiliser une notation plus facile, utilisez l'analyseur CCL - fonctions yaz_ccl_conf() et yaz_ccl_parse().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemples de Requête

Vous pouvez chercher pour des termes simples, comme ceci :
ordinateur
qui concorde avec les documents où "ordinateur" se trouve. Aucun attribut n'est spécifiés.

La requête
"knuth donald"
concorde avec les documents où "knuth donald" se trouve (en supposant que le serveur supporte la recherche de phrase).

Cette requête applique deux attributs à la même phrase.
@attr 1=1003 @attr 4=1 "knuth donald"
Le premier attribut est de type 1 (Bib-1), et sa valeur est 1003 (Auteur). Le second attribut est de type 4 (structure), valeur 1 (phrase), ce qui fait que la requête recherche les documents dont Donald Knuth est l'auteur.

La requête
@and @or a b @not @or c d e
ressemblerait en notation infix (a or b) and ((c or d) not e).

Un autre exemple, plus complexe :
@attrset gils @and @attr 1=4 art @attr 1=2000 company
La requête utilise l'ensemble de sous attributs GILS. La requête recherche les documents où le mot art apparaît dans le titre (GILS,BIB-1) et dont la société (company) apparaît comme distributeur (GILS).

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:58