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>-0.mf" file in the zebra data directory to verify operation. yaz_sort() should now work properly.
yaz_sort
(PHP 4 >= 4.0.7, PECL yaz >= 0.9.0)
yaz_sort — Configure les critères de tri
Description
Cette fonction configure les critères de tri et active le tri Z39.50.
Appelez cette fonction avant yaz_search(). Si elle est utilisée conjointement avec yaz_search(), une commande Z39.50 Sort sera envoyée après chaque retour de recherche et avant que les résultats ne soient lus avec Z39.50 Present (yaz_present()).
Liste de paramètres
- id
-
La ressource de connexion retournée par yaz_connect().
- criteria
-
Une chaîne de caractères qui prend la forme de field1 flags1 field2 flags2 où field1 spécifie les attributs primaires pour le tri, field2 le second, etc.
Le champ spécifie soit un attribut numérique, combinaison consistant de paires type=value séparées par des virgules (c'est-à-dire 1=4,2=1), soit il peut être spécifié en une chaîne de caractères (c'est-à-dire titre). Le flags est une séquence des caractères suivants qui ne peuvent être séparés par aucun espace.
-
Options de tri
- a
-
Tri ascendant
- d
-
Tri descendant
- i
-
Tri insensible à la casse
- s
-
Tri sensible à la casse
Valeurs de retour
Aucune valeur n'est retournée.
Exemples
Exemple #1 Critères de Tri
Pour effectuer des tris avec l'attribut Bib1 du champ "title", de manière insensible à la casse, vous pouvez utiliser le critère suivant :
1=4 ia
Si le second critère de tri doit être l'auteur, en tenant compte de la casse, et dans l'ordre alphabétique, vous pouvez utiliser :
1=4 ia 1=1003 sa
yaz_sort
26-Aug-2004 03:37
