yaz_search
(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)
Prepares for a search
Description
yaz_search() prepares for a search on the given connection.
Like yaz_connect() this function is non-blocking and only prepares for a search to be executed later when yaz_wait() is called.
Parameters
idThe connection resource returned by
yaz_connect().typeThis parameter represents the query type - only
"rpn"is supported now in which case the third argument specifies a Type-1 query in prefix query notation.queryThe RPN query is a textual representation of the Type-1 query as defined by the Z39.50 standard. However, in the text representation as used by YAZ a prefix notation is used, that is the operator precedes the operands. The query string is a sequence of tokens where white space is ignored unless surrounded by double quotes. Tokens beginning with an at-character (
@) are considered operators, otherwise they are treated as search terms.Construct Description @andquery1 query2intersection of query1 and query2 @orquery1 query2union of query1 and query2 @notquery1 query2query1 and not query2 @setnameresult set reference @attrsetset queryspecifies attribute-set for query. This construction is only allowed once - in the beginning of the whole query @attr[set] type=value queryapplies attribute to query. The type and value are integers specifying the attribute-type and attribute-value respectively. The set, if given, specifies the attribute-set. You can find information about attributes at the Z39.50 Maintenance Agency site.
NoteIf you would like to use a more friendly notation, use the CCL parser - functions
yaz_ccl_conf()andyaz_ccl_parse().
Return Values
Success
Examples
Query Examples
You can search for simple terms, like this:
computerwhich matches documents where "computer" occur. No attributes are specified.
The query
"knuth donald"matches documents where "knuth donald" occur (provided that the server supports phrase search).
This query applies two attributes for the same phrase.
@attr 1=1003 @attr 4=1 "knuth donald"First attribute is type 1 (Bib-1 use), attribute value is 1003 (Author). Second attribute has is type 4 (structure), value 1 (phrase), so this should match documents where Donald Knuth is author.
The query
@and @or a b @not @or c d ewould in infix notation look like (a or b) and ((c or d) not e).
Another, more complex, one:
@attrset gils @and @attr 1=4 art @attr 1=2000 companyThe query as a whole uses the GILS attributeset. The query matches documents where art occur in the title (GILS,BIB-1) and in which company occur as Distributor (GILS).