yaz_sort

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

yaz_sortConfigura los criterios de búsqueda

Descripción

void yaz_sort ( resource $id , string $criteria )

Esta función configura los criterios de búsqueda y activa la ordenación Z39.50 .

LLamar a esta función antes de yaz_search(). Utilizar esta función por si sola no tiene ningún efecto. Cuando se usa en conjunción con yaz_search(), una ordenación Z39.50 se enviará después de que la respuesta de la búsqueda ha sido recibida y antes de que cualquier registro sea recuperado con Z39.50 Present (yaz_present().

Parámetros

id

El recurso de conexión devuelto por yaz_connect().

criteria

Un string que toma la forma field1 flags1 field2 flags2 donde field1 especifica los atributos primarios para ordenar, field2 los secundarios, etc..

El campo especifica ya sea combinaciones de atributos numéricos consistentes de pares type=value separados por una coma (p.e. 1=4,2=1) ; o el campo debe especificar un string con el criterio (p.e. título). Los flags son secuencias de los caracteres siguientes que no pueden estar separados por ningún espacio.

Sort Flags
a

Ordenar de forma ascendente

d

Ordenar de forma descendente

i

No diferenciar entre mayúsculas o minúsculas en la ordenación

s

Diferenciar entre mayúsculas o minúsculas en la ordenación

Valores devueltos

No devuelve ningún valor.

Ejemplos

Ejemplo #1 Criterios de Ordenación

Para ordenar con el título de atributo Bib1e, sin diferenciar mayúsculas o minúsculas, y de forma ascendente, utilizar el siguiente criterio de ordenación:

1=4 ia

Si el criterio de ordenación secundario fuera el autor, diferenciando mayúsculas y minúsculas y de forma ascendente, se usaría:

1=4 ia 1=1003 sa

add a note add a note

User Contributed Notes 1 note

up
0
peter at NOSPAMimtc dot gatech dot edu
10 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>-0.mf" file in the zebra data directory to verify operation.  yaz_sort() should now work properly.
To Top