yaz_sort

(PHP 4 >= 4.0.7, PECL yaz >= 0.9.0)

yaz_sort设置排序标准

描述

yaz_sort(resource $id, string $criteria): void

此函数设置排序标准并启用 Z39.50 排序。

yaz_search() 之前调用此函数。仅使用此函数没有任何效果。当与 yaz_search() 一起使用时,将在收到搜索响应后且在使用 Z39.50 Present (yaz_present() 检索任何记录之前发送 Z39.50 排序。

参数

id

yaz_connect() 返回的连接资源。

criteria

一个字符串,其格式为 field1 flags1 field2 flags2,其中 field1 指定排序的主要属性,field2 次要属性,等等。

字段指定数值属性组合,由逗号分隔的类型=值对组成(例如 1=4,2=1);或者字段可以指定一个简单的字符串标准(例如 title。flags 是以下字符的序列,这些字符之间不能有任何空格。

排序标志
a

升序排序

d

降序排序

i

不区分大小写排序

s

区分大小写排序

返回值

不返回值。

示例

示例 #1 排序标准

要根据 Bib1 属性 title 进行排序,不区分大小写,且升序,您将使用以下排序标准

1=4 ia

如果次要排序标准应该是 author,区分大小写且升序,您将使用

1=4 ia 1=1003 sa

添加注释

用户贡献的注释 1 则注释

peter at NOSPAMimtc dot gatech dot edu
19 年前
此信息位于文档的多个地方,但需要一段时间才能找到。

yaz_sort() 仅适用于具有关联排序寄存器的字段。未能链接排序寄存器将生成错误“无法根据序列排序”。

排序寄存器在 default.idx 文件中创建,并在 *.abs 文件中引用。这是 default.idx 中的排序寄存器设置

...
# 排序寄存器(根本没有映射)
sort s
completeness 1
charmap string.chr
...

在上面的代码中,“s” 寄存器被设置为排序寄存器。Charmap string.chr 定义了用于变音符号的字符串转换。

这是 *abs 文件中对排序索引的引用

...
elm (2,1) title !:w,!:p,!:s
...

在上面的行中,“!:s” 会为该字段创建一个排序寄存器。

完成上述更改后,重新索引所有源记录并重新启动服务器。检查 zebra 数据目录中的“sort<fieldid>-0.mf”文件以验证操作。yaz_sort() 现在应该能够正常工作。
To Top