Query objects represents queries.
     ZOOM_query ZOOM_query_create(void);
     void ZOOM_query_destroy(ZOOM_query q);
     int ZOOM_query_prefix(ZOOM_query q, const char *str);
     int ZOOM_query_cql(ZOOM_query s, const char *str);
     int ZOOM_query_sortby(ZOOM_query q, const char *criteria);
     int ZOOM_query_sortby2(ZOOM_query q, const char *strategy,
                            const char *criteria);
   
    Create query objects using ZOOM_query_create
    and destroy them by calling ZOOM_query_destroy.
    RPN-queries can be specified in PQF
    notation by using the
    function ZOOM_query_prefix.
    The ZOOM_query_cql specifies a CQL
    query to be sent to the server/target.
    More query types will be added in future versions of YAZ, such as
    CCL to RPN-mapping, native CCL query,
    etc. In addition to a search, a sort criteria may be set. Function
    ZOOM_query_sortby enables Z39.50 sorting and
    it takes sort criteria using the same string notation as
    yaz-client's sort command.
   
    ZOOM_query_sortby2 is similar to
    ZOOM_query_sortby but allows a strategy for
    sorting. The reason for the strategy parameter is that some
    protocols offer multiple ways of performing sorting.
    For example, Z39.50 has the standard sort, which is performed after
    search on an existing result set.
    It's also possible to use CQL in Z39.50 as the query type and use
    CQL's SORTBY keyword. Finally, Index Data's
    Zebra server also allows sorting to be specified as part of RPN (Type 7).
   
Table 3.2. ZOOM sort strategy
| Name | Description | 
|---|---|
| z39.50 | Z39.50 resultset sort | 
| type7 | Sorting embedded in RPN(Type-7) | 
| cql | CQL SORTBY | 
| sru11 | SRU sortKeys parameter | 
| solr | Solr sort | 
| embed | type7 for Z39.50, cql for SRU, solr for Solr protocol |