请注意,yaz_range 的作用可能与您想象的不同。也就是说,它不会按照您提供的“start”和“number”参数返回结果集。
引用此线程
http://lists.indexdata.dk/pipermail/yazlist/2006-November/001752.html
“通常,您提供给 yaz_record() 的记录偏移量是到结果集的偏移量,而不是到由 yaz_range() 标识的任何子集的偏移量。这是至关重要的:yaz_range() 函数严格来说是为了帮助您编写更优化的客户端代码;您不需要调用它。
换句话说,如果您想显示集合中的第 10 到 20 条记录,您需要从 10 循环到 20 并为每条记录调用 yaz_record()。底层代码将根据需要按需检索记录。
但是,如果您在调用 yaz_wait() 之前调用 yaz_range(),底层代码将优化其行为......它要么请求
服务器返回记录以及搜索结果,或者提交一个单独的 present 请求来获取记录(如果您没有请求太多)......这在快速的 hack 中没有区别,但如果您正在为许多用户或大量流量进行设计,则可能会产生巨大的差异。无论您是否首先调用了 yaz_range(),您对 yaz_record() 的循环都将相同。”