X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=doc%2Fzoom.xml;h=da8f0a9a5132616ab15c00612d6d228e1790240b;hb=f3b96837fa4c86d0f10a9b167f94e897338bd16c;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?).