PHP マニュアル
前のページ |  | 次のページ

# yaz_search

(PHP 4 >= 4.0.1, PHP 5)

yaz_search -- 検索を準備する

## 説明

int yaz_search ( int id, string type, string query)

yaz_search() は、指定したidを有するターゲット で検索を行う準備をします。type は、クエリの型を表します。現在、 "rpn" のみがサポートされており、この場合、3番目の引数はType-1クエ リ(RPN)を指定します。yaz_connect() と同じく、 この関数は、非ブロックモードで動作し、後で yaz_wait() がコールされた際に実行される検索の 準備をするだけです。

## RPNクエリ

RPNクエリは、Z39.50規格により定義されたType-1 クエリのテキスト表 現です。しかし、YAZにより使用されるテキスト表現では、演算子がオペ ランドの前にある前置表記が使用されます。クエリ文字列はトークンの 並びであり、このトークンでは2重引用符で括られない限り空白文字は無 視されます。トークンは、アットマーク(`@`)で始ま り、演算子とみなされるか、そうでない場合は検索項目として処理され ます。

表 1. RPN 演算子

構文 | 説明
--- | ---
`@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` | クエリに属性を適用します。型と値は属性型と属性値をそれぞれ指 定する整数です。この組みが指定された場合、属性の組を指定しま す。

例 1. クエリの例

クエリ

    computer

は、"computer"を含む文書にマッチします。属性は指定されていません。

クエリ

    "donald knuth"

は、"donald knuth" がある文書にマッチします。

クエリ

    @attr 1=4 art

の場合、 属性型は1 (Bib-1 use)、属性の値は4 (Title)となります。このため、 titleに`art`が現れる文書にマッチします。

その他のより複雑なクエリの例:

    @attrset gils @and @attr 1=4 art @attr 1=1003 "donald knuth"

このクエリは、GILS属性集合を使用しています。クエリはtitleに `art`が現れ、authorに`donald knuth` が現れる文書にマッチします。

前のページ | ホーム | 次のページ
yaz_schema | 上に戻る | yaz_set_option