yaz_search() は、指定したidを有するターゲット で検索を行う準備をします。type は、クエリの型を表します。現在、 "rpn" のみがサポートされており、この場合、3番目の引数はType-1クエ リ(RPN)を指定します。yaz_connect() と同じく、 この関数は、非ブロックモードで動作し、後で yaz_wait() がコールされた際に実行される検索の 準備をするだけです。
RPNクエリは、Z39.50規格により定義されたType-1 クエリのテキスト表 現です。しかし、YAZにより使用されるテキスト表現では、演算子がオペ ランドの前にある前置表記が使用されます。クエリ文字列はトークンの 並びであり、このトークンでは2重引用符で括られない限り空白文字は無 視されます。トークンは、アットマーク(@)で始ま り、演算子とみなされるか、そうでない場合は検索項目として処理され ます。
表 1RPN 演算子
構文 | 説明 |
---|---|
@and query1 query2 | query1 および query2の積集合 |
@or query1 query2 | query1 および query2の和集合 |
@not query1 query2 | query1 であり、query2でない |
@set name | 結果セットへのリファレンス |
@attrset set query | クエリの属性セットを指定します。この構造が使用できるの は全てのクエリの始めに一回だけです。 |
@attr set type=value query | クエリに属性を適用します。型と値は属性型と属性値をそれぞれ指 定する整数です。この組みが指定された場合、属性の組を指定しま す。 |