属性字段快速参考
(例如:“@attr 2=” 指的是关系属性)
1 = 使用字段
2 = 关系
3 = 位置
4 = 结构
5 = 截断
6 = 完整性
(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)
yaz_search — 准备搜索
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
以及包含 company
作为分销商(GILS)的文档。属性字段快速参考
(例如:“@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);
}
?>