此信息位于文档的多个地方,但需要一段时间才能找到。
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() 现在应该能够正常工作。