此信息位于文档中的多个位置,但需要一段时间才能找到。
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-0.mf”文件以验证操作。yaz_sort()现在应该可以正常工作了。