X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=doc%2Fzoom.xml;h=da8f0a9a5132616ab15c00612d6d228e1790240b;hb=1064b0521a608ba2c985f893772315819a990372;hp=9c32a1535b0b5fe09868faef554f829727884504;hpb=b11da5f84991a07de9caf4ab52478e0e5a1028e0;p=yaz-moved-to-github.git diff --git a/doc/zoom.xml b/doc/zoom.xml index 9c32a15..da8f0a9 100644 --- a/doc/zoom.xml +++ b/doc/zoom.xml @@ -43,8 +43,11 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn) connection can be forced to use SRU rather the SRW (the default) by prefixing the target string with sru=get,, like this: sru=get,http://sru.miketaylor.org.uk:80/sru.pl - - + + + SOLR protocol support was added to YAZ in version 4.1.0, + as a dialect of a SRU protocol, since both are HTTP based protocols. + The lack of a simple Z39.50 client API for &yaz; has become more and more apparent over time. So when the first &zoom; specification @@ -115,7 +118,8 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn) You can prefix the host with a scheme followed by colon. The default scheme is tcp (Z39.50 protocol). - The scheme http selects SRU over HTTP. + The scheme http selects SRU/get over HTTP by default, + but can overridded to use SRU/post, SRW and the SOLR protocol. You can prefix the scheme-qualified host-string with one or more @@ -274,12 +278,12 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn) discover whether the server claims to support the specified operations. none - - sru - SRU transport type. Must be either soap, + + sru + SRU/SOLR transport type. Must be either soap, get, post, or solr. - soap + soap sru_version SRU/SRW version. Should be 1.1, or @@ -362,14 +366,14 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn) - SRU Protocol behavior + SRU/SOLR Protocol behavior - The SRU protocol doesn't feature an Inititialize Request, so + The HTTP based protocols (SRU, SRW, SOLR) doesn't feature an Inititialize Request, so the connection phase merely establishes a TCP/IP connection with the SOAP service. Most of the ZOOM connection options do not - affect SRU and they are ignored. However, future versions + affect SRU/SOLR and they are ignored. However, future versions of &yaz; might honor implementationName and put that as part of User-Agent header for HTTP requests. @@ -667,7 +671,10 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn) SRU SearchRetrieveRequest. - Unfortunately, SRU does not define a database setting. Hence, + SOLR queries has to be done in SOLR query format. + + + Unfortunately, SRU or SOLR does not define a database setting. Hence, databaseName is unsupported and ignored. However, the path part in host parameter for functions ZOOM_connecton_new and @@ -809,7 +816,7 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn) xml The record is returned in XML if possible. - SRU and Z39.50 records with transfer syntax XML are + SRU, SOLR and Z39.50 records with transfer syntax XML are returned verbatim. MARC records are returned in MARCXML @@ -876,14 +883,68 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn) - SRU Protocol behavior + SRU/SOLR Protocol behavior - The ZOOM driver for SRU treats records returned by a SRU server + The ZOOM driver for SRU/SOLR treats records returned by a SRU/SOLR server as if they where Z39.50 records with transfer syntax XML and no element set name or database name. + Facets + + Facets operations is not part of the official ZOOM specification, but is an Index Data extension + for YAZ-based Z39.50 targets or SOLR targets. + In case the target can and is requested to return facets, using a result set the ZOOM client + can request one or all facet fields. Using a facet field the client can request the term count and + then interate over the terms. + + + ZOOM_facet_field *ZOOM_resultset_facets(ZOOM_resultset r); + const char ** ZOOM_resultset_facets_names(ZOOM_resultset r); + ZOOM_facet_field ZOOM_resultset_get_facet_field(ZOOM_resultset r, const char *facet_name); + ZOOM_facet_field ZOOM_resultset_get_facet_field_by_index(ZOOM_resultset r, int pos); + size_t ZOOM_resultset_facets_size(ZOOM_resultset r); + + const char *ZOOM_facet_field_name(ZOOM_facet_field facet_field); + size_t ZOOM_facet_field_term_count(ZOOM_facet_field facet_field); + const char *ZOOM_facet_field_get_term(ZOOM_facet_field facet_field, size_t idx, int *freq); + + + References to temporary structures are returned by all functions. They are only valid as long the Result set is valid. + ZOOM_resultset_get_facet_field or + ZOOM_resultset_get_facet_field_by_index. + ZOOM_resultset_facets. + ZOOM_resultset_facets_names. + ZOOM_facet_field_name. + ZOOM_facet_field_get_term. + + + A single Facet field is returned by function + ZOOM_resultset_get_facet_field or ZOOM_resultset_get_facet_field_by_index that takes a + result set and facet name or positive index respectively. First facet has position zero. + If no facet could be obtained (invalid name or index out of bounds) NULL is returned. + + + An array of facets field can be returned by ZOOM_resultset_facets. The length of the array is + given by ZOOM_resultset_facets_size. The array is zero-based and last entry will be at + ZOOM_resultset_facets_size(result_set)-1. + + + It is possible to interate over facets by name, by calling ZOOM_resultset_facets_names. + This will return an const array of char * where each string can be used as parameter for + ZOOM_resultset_get_facet_field. + + + Function ZOOM_facet_field_name gets the request facet name from a returned facet field. + + + Function ZOOM_facet_field_get_term returns the idx'th term and term count for a facet field. + Idx must between 0 and ZOOM_facet_field_term_count-1, otherwise the returned reference will be + NULL. On a valid idx, the value of the freq reference will be the term count. + The *freq parameter must be valid pointer to integer. + + Scan This section describes an interface for Scan. Scan is not an @@ -893,7 +954,7 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn) - The Scan interface is supported for both Z39.50 and SRU. + The Scan interface is supported for both Z39.50, SRU (and SOLR?).