屬性欄位快速參考
(例如:「@attr 2=」指的是「關係」屬性)
1 = 使用欄位
2 = 關係
3 = 位置
4 = 結構
5 = 截斷
6 = 完整性
(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)
yaz_search — 準備搜尋
yaz_search() 函式用於準備在指定的連線上進行搜尋。
如同 yaz_connect() 函式,這個函式是非阻塞式的,它只準備搜尋,實際執行搜尋的動作是在之後呼叫 yaz_wait() 時才會進行。
id
由 yaz_connect() 函式返回的連線資源。
type
這個參數代表查詢類型 - 目前僅支援 "rpn"
,此時第三個參數指定以字首查詢表示法表示的 Type-1 查詢。
query
RPN 查詢是 Z39.50 標準定義的 Type-1 查詢的文字表示形式。然而,在 YAZ 使用的文字表示形式中,使用的是字首表示法,也就是運算子在運算元之前。查詢字串是一系列的詞彙,其中空白字元會被忽略,除非它們被雙引號包圍。以 @ 符號 (@
) 開頭的詞彙被視為運算子,否則它們會被視為搜尋詞彙。
結構 | 說明 |
---|---|
@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 |
將屬性應用於查詢。type 和 value 是整數,分別指定屬性類型和屬性值。set(如果提供)指定屬性集。 |
您可以在 » Z39.50 維護機構 網站找到關於屬性的資訊。
注意事項:
如果您想使用更友善的表示法,請使用 CCL 解析器 - 函式 yaz_ccl_conf() 和 yaz_ccl_parse()。
範例 #1 查詢範例
您可以搜尋簡單的詞彙,如下所示
computer
查詢
"knuth donald"
此查詢對同一片語應用兩個屬性。
查詢
@and @or a b @not @or c d e
(a or b) and ((c or d) not e)
。另一個更複雜的例子
@attrset gils @and @attr 1=4 art @attr 1=2000 company
art
且經銷商 (GILS) 中出現 company
的文件。屬性欄位快速參考
(例如:「@attr 2=」指的是「關係」屬性)
1 = 使用欄位
2 = 關係
3 = 位置
4 = 結構
5 = 截斷
6 = 完整性
要顯示館藏資料,請將語法和記錄格式設定為「opac」(至少適用於 Horizon ILS)。它會提供一個 XML,其中包含帶有所有資訊的 <holding> 元素。
<?php
$z = yaz_connect(...
yaz_syntax($z, 'opac');
yaz_search($z, 'rpn', '@attr 1=4 "title%"');
yaz_wait();
$hits = yaz_hits($z);
yaz_range($z, 1, $hits);
yaz_present($z);
for($i = 1; $i <= $hits; $i++)
my_display(yaz_record($z, $i, 'opac'));
yaz_close($z);
function my_display($s)
{
$lines = explode("\n", trim($s));
var_dump($lines);
}
?>