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

yaz_sortتعیین معیار مرتب‌سازی


void yaz_sort ( resource $id , string $criteria )

این تابع معیار مرتب‌سازی را تعیین می‌کند و مرتب‌سازی Z39.50 را فعال می‌سازد.

این تابع را پیش از yaz_search() فراخوانی کنید. استفاده از این تابع به تنهایی تاثیری ندارد. هنگام استفاده به همراه yaz_search() مرتب‌سازی Z39.50 پس از دریافت پاسخ جستجو و پیش از بازیابی هر رکورد Z39.50 حاضر (yaz_present() مرتب‌سازی می‌کند.



منبع اتصال بازگردانده شده توسط yaz_connect().


رشته به شکل field1 flags1 field2 flags2 است که در آن field1 ویژگی‌های اصلی مرتب‌سازی را مشخص می‌کند، field2 دومی, ....

field ویژگی عددی ترکیب ویژگی‌های عددی شامل جفت‌های type=value جدا شده توسط کاما (به عنوان مثال 1=4,2=1) را مشخص می‌کند ; یا فیلد ممکن است معیار رشته ساده (به عنوان مثال title را مشخص کند. پرچم‌ها توالی کاراکترهای زیر ممکن است توسط فضای خالی جدا نشوند..

پرچم‌های مرتب‌سازی

مرتب‌سازی افزایشی


مرتب‌سازی افزایشی


مرتب‌سازی بدون توجه به بزرگی و کوچکی حروف


مرتب‌سازی با توجه به بزرگی و کوچکی حروف

Return Values

No value is returned.


Example #1 معیار مرتب‌سازی

برای مرتب‌سازی بر ویژگی عنوان Bib1 بدون توجه به بزرگی و کوچی خروف و افزایشی از معیاری مرتب‌سازی زیر استفاده کنید:

1=4 ia

اگر دومین معیار مرتب‌سازی نویسنده باشد و با توجه به بزرگی و کوچکی حروف و افزایشی از مورد زیر استفاده کنید :

1=4 ia 1=1003 sa

add a note add a note

User Contributed Notes 1 note

peter at NOSPAMimtc dot gatech dot edu
13 years ago
This information is located in several places in the documentation, but takes awhile to find. 

yaz_sort() only works for fields that have an associated sort register.  Failure to link a sort register will generate the error "Cannot sort according to sequence".

The sort register is created in the default.idx file and referenced in the *.abs file.  This is the sort register setting in default.idx:

# Sort register (no mapping at all)
sort s
completeness 1
charmap string.chr

In the above code the "s" register is setup as the sort register.  Charmap string.chr defines the string conversion for diacritics.

This is the reference to the sort index in the *abs file:

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

In the above line the "!:s" causes a sort register to be created for the field.

Once the above changes have been made, reindex all the source records and restart the server.   Check for a "sort<fieldid>" file in the zebra data directory to verify operation.  yaz_sort() should now work properly.
To Top