X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=doc%2Fzoom.xml;h=3f2849a4167284b3f112131d5319ea5b065ab8c4;hb=30ec1bf7cfbf66288cd18d180616712de9ec3558;hp=a971125a2c9be57f890f0e8cbec144bb1b639b6d;hpb=c03baef23be97fa40de8b65e46a3fdde9469effa;p=metaproxy-moved-to-github.git diff --git a/doc/zoom.xml b/doc/zoom.xml index a971125..3f2849a 100644 --- a/doc/zoom.xml +++ b/doc/zoom.xml @@ -1,4 +1,4 @@ - @@ -9,27 +9,27 @@ Metaproxy Index Data - + zoom 3mp Metaproxy Module - + zoom Metaproxy ZOOM Module - + DESCRIPTION This filter implements a generic client based on ZOOM of YAZ. The client implements the protocols that ZOOM C does: Z39.50, SRU - (GET, POST, SOAP) and SOLR . + (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 @@ -56,9 +56,10 @@ CONFIGURATION - The configuration consists of five parts: torus, + The configuration consists of six parts: torus, fieldmap, cclmap, - contentProxy and log. + contentProxy, log + and zoom. torus @@ -71,14 +72,66 @@ attribute url + URL of Web service to be used when fetch target profiles from + a remote service (Torus normally). + + + The sequence %query is replaced with a CQL + query for the Torus search. + + + The special sequence %realm is replaced by value + of attribute realm or by realm DATABASE argument. + + + The special sequence %db is replaced with + a single database while searching. Note that this sequence + is no longer needed, because the %query can already + query for a single database by using CQL query + udb==.... + + + + + attribute content_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. + for a given database (udb) of type content. Semantics otherwise like + url attribute above. + + + + + attribute auth_url + + + URL of Web service to be used to for auth/IP lookup. If this + defined, all access is granted or denied as part of Z39.50 Init + by the ZOOM module and the use of database parameters realm and + torus_url is not allowed. If this setting is not defined, + all access is allowed and realm and/or torus_url may be used. + + + + + attribute auth_hostname + + + Limits IP lookup to a given logical hostname. + attribute realm + + + The default realm value. Used for %realm in URL, unless + specified in DATABASE parameter. + + + + attribute proxy @@ -121,6 +174,29 @@ + attribute explain_xsl + + + Specifies a stylesheet that converts one or more Torus records + to ZeeExplain records. The content of recordData is assumed to be + holding each Explain record. + + + + + attribute record_xsl + + + Specifies a stylesheet that converts retrieval records after + transform/literal operations. + + + When Metaproxy creates a content proxy session, the XSL parameter + cproxyhost is passed to the transform. + + + + element records @@ -132,7 +208,7 @@ - + fieldmap The fieldmap may be specified zero or more times and @@ -158,7 +234,7 @@ - + cclmap The third part of the configuration consists of zero or more @@ -177,6 +253,17 @@ + attribute config_file + + + Specifies the file that configures the cf-proxy system. Metaproxy + uses setting sessiondir and + proxyhostname from that file to configure + name of proxy host and directory of parameter files for the cf-proxy. + + + + attribute server @@ -184,6 +271,12 @@ host[:port]. That is without a method (such as HTTP) and optional port number. + + + This setting is deprecated. Use the config_file (above) + to inform about the proxy server. + + @@ -196,6 +289,12 @@ using the mkstemp(3) system call. The default value of this setting is /tmp/cf.XXXXXX.p. + + + This setting is deprecated. Use the config_file (above) + to inform about the session file area. + + @@ -221,6 +320,35 @@ + + + zoom + + The zoom element controls settings for the + ZOOM. + + + + attribute timeout + + + Is an integer that specifies, in seconds, how long an operation + may take before ZOOM gives up. Default value is 40. + + + + + attribute proxy_timeout + + + Is an integer that specifies, in seconds, how long an operation + a proxy check will wait before giving up. Default value is 1. + + + + + + QUERY HANDLING @@ -239,11 +367,15 @@ Step 1: for CCL, the query is converted to RPN via - cclmap elements part of the target profile. + cclmap + elements part of + the target profile as well as + base CCL maps. Step 1: For CQL, the query is converted to CCL. The mappings of - CQL fields to CCL fields are handled by fieldmap + 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). @@ -251,19 +383,23 @@ 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 + If the target is Solr-based, the RPN will be converted to Solr's query type. - + SORTING The ZOOM module actively handle CQL sorting - using the SORTBY parameter which was introduced in SRU version 1.2. The conversion from SORTBY clause - to native sort for some target is driven by the two parameters: - sortStrategy - and sortmap_field. + to native sort for some target is driven by the two parameters: + + sortStrategy + + and + sortmap_field + . If a sort field that does not have an equivalent @@ -271,7 +407,7 @@ conversion. It doesn't throw a diagnostic. - + TARGET PROFILE @@ -284,20 +420,39 @@ - authentication + authentication Authentication parameters to be sent to the target. For Z39.50 targets, this will be sent as part of the - Init Request. + Init Request. Authentication consists of two components: username + and password, separated by a slash. If this value is omitted or empty no authentication information is sent. - + - cclmap_* + authenticationMode + + Specifies how authentication parameters are passed to server + for SRU. Possible values are: url + and basic. For the url mode username and password + are carried in URL arguments x-username and x-password. + For the basic mode, HTTP basic authentication is used. + The settings only takes effect + if authentication + is set. + + + If this value is omitted HTTP basic authencation is used. + + + + + + cclmap_field This value specifies CCL field (qualifier) definition for some field. For Z39.50 targets this most likely will specify the @@ -307,7 +462,7 @@ - + cfAuth @@ -320,7 +475,7 @@ - cfProxy + cfProxy Specifies HTTP proxy for the target in the form host:port. @@ -329,14 +484,14 @@ - cfSubDb + cfSubDB Specifies sub database for a Connector Framework based target. - + contentConnector Specifies a database for content-based proxy'ing. @@ -355,7 +510,7 @@ element_raw from the configuration. By default that is the element sets pz2 and raw. - If record transform is not enabled, this setting is + If record transform is not enabled, this setting is not used and the element set specified by the client is passed verbatim. @@ -375,7 +530,7 @@ - + piggyback @@ -386,7 +541,7 @@ - + queryEncoding @@ -396,7 +551,7 @@ - + recordEncoding @@ -419,15 +574,16 @@ - - sortmap_ + + sortmap_field - This value the native field for a target. + This value the native field for a target. The form of the value is + given by sortStrategy. - - + + sortStrategy Specifies sort strategy for a target. One of: @@ -439,7 +595,7 @@ - + sru @@ -451,7 +607,17 @@ - + + sruVersion + + Specifies the SRU version to use. It unset, version 1.2 will be + used. Some servers do not support this version, in which case + version 1.1 or even 1.0 could be set it. + + + + + transform Specifies a XSL stylesheet filename to be used if record @@ -462,7 +628,7 @@ - + udb This value is required and specifies the unique database for @@ -471,56 +637,221 @@ - + urlRecipe The value of this field is a string that generates a dynamic link - based on content. If the resulting string is non-zero in length - a new field, metadata with attribute - type=generated-url. The contents of this field is the result of the - URL recipe conversion. The urlRecipe value may refer to an existing - metadata element by ${field[pattern/result/flags]}, which will take content + based on record content. If the resulting string is non-zero in length + a new field, metadata with attribute + type="generated-url" is generated. + The contents of this field is the result of the URL recipe conversion. + The urlRecipe value may refer to an existing metadata element by + ${field[pattern/result/flags]}, which will take content of field and perform a regular expression conversion using the pattern given. For example: ${md-title[\s+/+/g]} takes - metadadata element title and converts one or more + metadata element title and converts one or more spaces to a plus character. - - If the contentConnector setting is defined the resulting value is - agmented with a session string as well as the content proxy server. - - - + + 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. + not be provided as this is guessed from the "sru" attribute value. + DATABASE parameters + + Extra information may be carried in the Z39.50 Database or SRU path, + such as authentication to be passed to backend etc. Some of + the parameters override TARGET profile values. The format is + + + udb,parm1=value1&parm2=value2&... + + + Where udb is the unique database recognised by the backend and parm1, + value1, .. are parameters to be passed. The following describes the + supported parameters. Like form values in HTTP the parameters and + values are URL encoded. The separator, though, between udb and parameters + is a comma rather than a question mark. What follows question mark are + HTTP arguments (in this case SRU arguments). + + + The database parameters, in alphabetical order, are: + + + + content-password + + + The password to be used for content proxy session. If this parameter + is not given, value of parameter password is passed + to content proxy session. + + + + + content-proxy + + + Specifies proxy to be used for content proxy session. If this parameter + is not given, value of parameter proxy is passed + to content proxy session. + + + + + content-user + + + The user to be used for content proxy session. If this parameter + is not given, value of parameter user is passed + to content proxy session. + + + + + cproxysession + + + Specifies the session ID for content proxy. This parameter is, generally, + not used by anything but the content proxy itself when invoking + Metaproxy via SRU. + + + + + nocproxy + + + If this parameter is specified, content-proxying is disabled + for the search. + + + + + password + + + Specifies password to be passed to backend. It is also passed + to content proxy session unless overriden by content-password. + If this parameter is omitted, the password will be taken from + TARGET profile setting + + authentication + + . + + + + + proxy + + + Specifies one or more proxies for backend. If this parameter is + omitted, the proxy will be taken from TARGET profile setting + + cfProxy. + The parameter is a list of comma-separated host:port entries. + Bost host and port must be given for each proxy. + + + + + realm + + + Session realm to be used for this target, changed the resulting + URL to be used for getting a target profile, by changing the + value that gets substituted for the %realm string. This parameter + is not allowed if access is controlled by + auth_url + in configuration. + + + + + retry + + + Optional paramater. If the value is 0, retry on failure is + disabled for the ZOOM module. Any other value enables retry + on failure. If this parameter is omitted, then the value of + retryOnFailure + from the Torus record is used (same values). + + + + + + torus_url + + + Sets the URL to be used for Torus records fetch - overriding value + of url attribute of element torus + in zoom configuration. This parameter is not allowed if access is + controlled by + auth_url in configuration. + + + + + + user + + + Specifies user to be passed to backend. It is also passed + to content proxy session unless overriden by content-user. + If this parameter is omitted, the user will be taken from TARGET + profile setting + + authentication + + . + + + + + x-parm + + + All parameters that has prefix x, dash are passed verbatim + to the backend. + + + + + + SCHEMA - + EXAMPLES - The following configuration illustrates most of the - facilities: + In example below Target definitions (Torus records) are fetched + from a web service via a proxy. A CQL profile is configured which + maps to a set of CCL fields ("no field", au, tu and su). Presumably + the target definitions fetched maps the CCL to their native RPN. + A CCL "ocn" is mapped for all targets. Logging of APDUs are enabled, + and a timeout is given. @@ -528,7 +859,7 @@ - + @@ -536,13 +867,43 @@ + ]]> - - - + + + Here is another example with two locally defined targets: A + Solr target and a Z39.50 target. + + + + + + ocs-test + t=z + u=title t=z + solr + ocs-test.indexdata.com/solr/select + + + loc + t=l,r + u=4 t=l,r + z3950.loc.gov:7090/voyager + + + + + + +]]> + + + + SEE ALSO @@ -558,7 +919,7 @@ - + ©right;