X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=doc%2Fzoom.xml;h=c6a09e942cceb033e88995dca9a7d54a07095d08;hb=b3acb59a189d35972417558297963d8db3bdcd35;hp=7802331e354ca4cb93637dd9d6f7518c3344e515;hpb=b8f2a2ba8d050d936b7f5fbdd6c2d057d032fec7;p=metaproxy-moved-to-github.git diff --git a/doc/zoom.xml b/doc/zoom.xml index 7802331..c6a09e9 100644 --- a/doc/zoom.xml +++ b/doc/zoom.xml @@ -18,7 +18,7 @@ zoom - Metaproxy Package ZOOM Module + Metaproxy ZOOM Module DESCRIPTION @@ -28,8 +28,331 @@ The client implements the protocols that ZOOM C does: Z39.50, SRU (GET, POST, SOAP) and SOLR . + + + This filter only deals with Z39.50 on input. The following services + are supported: init, search, present and close. The backend target + is selected based on the database as part search and + not as part of init. + + + + This filter is an alternative to the z3950_client filter but also + shares properties of the virt_db - in that the target is selected + for a specific database + + + + The ZOOM filter relies on a target profile description, which is + XML based. It picks the profile for a given database from a web service + or it may be locally given for each unique database (AKA virtual database + in virt_db). Target profiles are directly and indrectly given as part + of the torus element in the configuration. + + + + + CONFIGURATION + + The configuration consists of four parts: torus, + fieldmap, cclmap + and log. + + torus + + The torus element specifies target profiles + and takes the following content: + + + + attribute url + + + URL of Web service to be used to fetch target profile + for a given database (udb). The special sequence + %db of the URL is replaced by the + actual database specified as part of Search. + + + + + attribute proxy + + + HTTP proxy to bse used for fetching target profiles. + + + + + attribute xsldir + + + Directory that is searched for XSL stylesheets. Stylesheets + are specified in the target profile by the + transform element. + + + + + attribute element_transform + + + Specifies the element that triggers retrieval and transform using + the parameters elementSet, recordEncoding, requestSyntax, transform + from the target profile. Default value + is "pz2", due to the fact that for historical reasons the + common format is that used in Pazpar2. + + + + + attribute element_raw + + + Specifies an element that triggers retrieval using the + parameters elementSet, recordEncoding, requestSyntax from the + target profile. Same actions as for element_transform, but without + the XSL transform. Useful for debugging. + The default value is "raw". + + + + + element records + + + Local target profiles. This element may includes zero or + more record elements (one per target + profile). See section TARGET PROFILE. + + + + + + fieldmap + + The fieldmap may be specified zero or more times and + specifies the map from CQL fields to CCL fields and takes the + following content: + + + + attribute cql + + + CQL field that we are mapping "from". + + + + + attribute ccl + + + CCL field that we are mapping "to". + + + + + + cclmap + + The third part of the configuration consists of zero or more + cclmap elements that specifies + base CCL profile to be used for all targets. + This configuration, thus, will be combined with cclmap-definitions + from the target profile. + + + log + + The log element controls logging for the + ZOOM filter. + + + + attribute apdu + + + If the value of apdu is "true", then protocol packages + (APDUs and HTTP packages) from the ZOOM filter will be + logged to the yaz_log system. A value of "false" will + not perform logging of protocol packages (the default + behavior). + + + + + + + QUERY HANDLING + + The ZOOM filter accepts three query types: RPN(Type-1), CCL and + CQL. + + + Queries are converted in two separate steps. In the first step + the input query is converted to RPN/Type-1. This is always + the common internal format between step 1 and step 2. + In step 2 the query is converted to the native query type of the target. + + + Step 1: for RPN, the query is passed unmodified to the target. + + + Step 1: for CCL, the query is converted to RPN via + cclmap elements part of the target profile. + + + Step 1: For CQL, the query is converted to CCL. The mappings of + CQL fields to CCL fields are handled by fieldmap + elements as part of the target profile. The resulting query, CCL, + is the converted to RPN using the schema mentioned earlier (via + cclmap). + + + Step 2: If the target is Z39.50-based, it is passed verbatim (RPN). + If the target is SRU-based, the RPN will be converted to CQL. + If the target is SOLR-based, the RPN will be converted to SOLR's query + type. + + + + TARGET PROFILE + + The following elements are honored by the ZOOM module of Metaproxy. + Note that unknown elements are silently ignored. There are several + elements in use that makes no sense to the ZOOM module. + + + + authentication + + Authentication parameters to be sent to the target. For + Z39.50 targets, this will be sent as part of the + Init Request. + + + If this value is omitted or empty, not authentication information + is simply omitted. + + + + + + piggyback + + A value of 1/true is a hint to the ZOOM module that this Z39.50 + target supports piggyback searches, ie Search Response with + records. Any other value (false) will prevent the ZOOM module + to make use of piggyback (all records part of Present Response). + + + + + + queryEncoding + + If this value is defined, all queries will be converted + to this encoding. This should be used for all Z39.50 targets that + do not use UTF-8 for query terms. + + + + + + udb + + This value is required and specifies the unique database for + this profile . All target profiles should hold a unique database. + + + + + + cclmap_* + + This value specifies CCL field (qualifier) definition for some + field. For Z39.50 targets this most likely will specify the + mapping to a numeric use attribute + a structure attribute. + For SRU targets, the use attribute should be string based, in + order to make the RPN to CQL conversion work properly (step 2). + + + + + + elementSet + + Specifies the elementSet to be sent to the target if record + transform is enabled (not to be confused' with the record_transform + module). The record transform is enabled only if the client uses + record syntax = XML and a element set determined by + the element_transform / + element_raw from the configuration. + By default that is the element sets pz2 + and raw. + If record transform is not enabled, this setting is + not used and the element set specified by the client + is passed verbatim. + + + + + + recordEncoding + + Specifies the character encoding of records that are returned + by the target. This is primarily used for targets were records + are not UTF-8 encoded already. This setting is only used + if the record transform is enabled (see description of elementSet). + + + + + + requestSyntax + + Specifies the record syntax to be specified for the target + if record transform is enabled; see description of elementSet. + If record transform is not enabled, the record syntax of the + client is passed verbatim to the target. + + + + + + sru + + If this setting is set, it specifies that the target is web service + based and must be one of : get, + post, soap + or solr. + + + + + + transform + + Specifies a XSL stylesheet filename to be used if record + transform is anabled; see desciprion of elementSet. + The XSL transform is only used if the element set is set to the + value of element_transform in the configuration. + + + + + + zurl + + This is setting is mandatory and specifies the ZURL of the + target in the form of host/database. The HTTP method should + not be provide as this is guessed from the "sru" attribute value. + + + + - SCHEMA @@ -60,6 +383,7 @@ + ]]>