This filter implements a generic client based on
<ulink url="&url.yaz.zoom;">ZOOM</ulink> of YAZ.
The client implements the protocols that ZOOM C does: Z39.50, SRU
- (GET, POST, SOAP) and SOLR .
+ (GET, POST, SOAP) and Solr .
</para>
<para>
</para>
</listitem>
</varlistentry>
+ <varlistentry id="auth_url">
+ <term>attribute <literal>auth_url</literal></term>
+ <listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry id="auth_hostname">
+ <term>attribute <literal>auth_hostname</literal></term>
+ <listitem>
+ <para>
+ Limits IP lookup to a given logical hostname.
+ </para>
+ </listitem>
+ </varlistentry>
<varlistentry>
<term>attribute <literal>realm</literal></term>
<listitem>
<para>
The default realm value. Used for %realm in URL, unless
- specified in DATABASE argument.
+ specified in DATABASE parameter.
</para>
</listitem>
</varlistentry>
</para>
<para>
Step 1: for CCL, the query is converted to RPN via
- <link linkend="cclmap"><literal>cclmap</literal></link> elements part of
+ <link linkend="zoom-torus-cclmap"><literal>cclmap</literal></link>
+ elements part of
the target profile as well as
<link linkend="cclmap_base">base CCL maps</link>.
</para>
<para>
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.
</para>
</refsect1>
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:
- <link linkend="sortStrategy"><literal>sortStrategy</literal></link>
- and <link linkend="sortmap"><literal>sortmap_</literal><replaceable>field</replaceable></link>.
+ <link linkend="zoom-torus-sortStrategy">
+ <literal>sortStrategy</literal>
+ </link>
+ and <link linkend="zoom-torus-sortmap">
+ <literal>sortmap_</literal><replaceable>field</replaceable>
+ </link>.
</para>
<para>
If a sort field that does not have an equivalent
</listitem>
</varlistentry>
- <varlistentry id="cclmap">
+ <varlistentry>
+ <term id="zoom-torus-authenticationMode">authenticationMode</term><listitem>
+ <para>
+ Specifies how authentication parameters are passed to server
+ for SRU. Possible values are: <literal>url</literal>
+ and <literal>basic</literal>. 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 <link linkend="zoom-torus-authentication">authentication</link>
+ is set.
+ </para>
+ <para>
+ If this value is omitted HTTP basic authencation is used.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="zoom-torus-cclmap">
<term>cclmap_<replaceable>field</replaceable></term><listitem>
<para>
This value specifies CCL field (qualifier) definition for some
</listitem>
</varlistentry>
- <varlistentry id="sortmap">
+ <varlistentry id="zoom-torus-sortmap">
<term>sortmap_<replaceable>field</replaceable></term><listitem>
<para>
This value the native field for a target. The form of the value is
- given by <link linkend="sortStrategy">sortStrategy</link>.
+ given by <link linkend="zoom-torus-sortStrategy">sortStrategy</link>.
</para>
</listitem>
</varlistentry>
- <varlistentry id="sortStrategy">
+ <varlistentry id="zoom-torus-sortStrategy">
<term>sortStrategy</term><listitem>
<para>
Specifies sort strategy for a target. One of:
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry id="sruVersion">
<term>sruVersion</term><listitem>
<para>
Specifies the SRU version to use. It unset, version 1.2 will be
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry id="transform">
<term>transform</term><listitem>
<para>
Specifies a XSL stylesheet filename to be used if record
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry id="udb">
<term>udb</term><listitem>
<para>
This value is required and specifies the unique database for
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry id="zurl">
<term>zurl</term><listitem>
<para>
This is setting is mandatory and specifies the ZURL of the
is a comma rather than a question mark. What follows question mark are
HTTP arguments (in this case SRU arguments).
</para>
+ <para>
+ The database parameters, in alphabetical order, are:
+ </para>
<variablelist>
<varlistentry>
- <term>user</term>
+ <term>content-password</term>
<listitem>
<para>
- Specifies user to be passed to backend. If this parameter is
- omitted, the user will be taken from TARGET profile setting
- <link linkend="zoom-torus-authentication">
- <literal>authentication</literal>
- </link>
- .
+ The password to be used for content proxy session. If this parameter
+ is not given, value of parameter <literal>password</literal> is passed
+ to content proxy session.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>content-proxy</term>
+ <listitem>
+ <para>
+ Specifies proxy to be used for content proxy session. If this parameter
+ is not given, value of parameter <literal>proxy</literal> is passed
+ to content proxy session.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>content-user</term>
+ <listitem>
+ <para>
+ The user to be used for content proxy session. If this parameter
+ is not given, value of parameter <literal>user</literal> is passed
+ to content proxy session.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cproxysession</term>
+ <listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>nocproxy</term>
+ <listitem>
+ <para>
+ If this parameter is specified, content-proxying is disabled
+ for the search.
</para>
</listitem>
</varlistentry>
<term>password</term>
<listitem>
<para>
- Specifies password to be passed to backend. If this parameters is
- omitted, the password will be taken from TARGET profile setting
+ 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
<link linkend="zoom-torus-authentication">
<literal>authentication</literal>
</link>
</listitem>
</varlistentry>
<varlistentry>
- <term>cproxysession</term>
+ <term>realm</term>
<listitem>
<para>
- Session ID for content proxy. This parameter is, generally,
- not used by anything but the content proxy itself.
+ 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
+ <link linkend="auth_url">auth_url</link>
+ in configuration.
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>nocproxy</term>
+ <term>retry</term>
<listitem>
<para>
- If this parameter is specified, content-proyxing is disabled
- for the search.
+ 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
+ <literal>retryOnFailure</literal>
+ from the Torus record is used (same values).
</para>
</listitem>
</varlistentry>
+
<varlistentry>
- <term>realm</term>
+ <term>torus_url</term>
<listitem>
<para>
- 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.
+ Sets the URL to be used for Torus records fetch - overriding value
+ of <literal>url</literal> attribute of element <literal>torus</literal>
+ in zoom configuration. This parameter is not allowed if access is
+ controlled by
+ <link linkend="auth_url">auth_url</link> in configuration.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>user</term>
+ <listitem>
+ <para>
+ 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
+ <link linkend="zoom-torus-authentication">
+ <literal>authentication</literal>
+ </link>
+ .
</para>
</listitem>
</varlistentry>
<refsect1>
<title>EXAMPLES</title>
<para>
- 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.
<screen><![CDATA[
<filter type="zoom">
<torus
</screen>
</para>
+ <para>
+ Here is another example with two locally defined targets: A
+ Solr target and a Z39.50 target.
+ <screen><![CDATA[
+ </filter>
+ <filter type="zoom">
+ <torus>
+ <records>
+ <record>
+ <udb>ocs-test</udb>
+ <cclmap_term>t=z</cclmap_term>
+ <cclmap_ti>u=title t=z</cclmap_ti>
+ <sru>solr</sru>
+ <zurl>ocs-test.indexdata.com/solr/select</zurl>
+ </record>
+ <record>
+ <udb>loc</udb>
+ <cclmap_term>t=l,r</cclmap_term>
+ <cclmap_ti>u=4 t=l,r</cclmap_ti>
+ <zurl>z3950.loc.gov:7090/voyager</zurl>
+ </record>
+ </records>
+ </torus>
+ <fieldmap cql="cql.serverChoice"/>
+ <fieldmap cql="dc.title" ccl="ti"/>
+ </filter>
+]]>
+ </screen>
+ </para>
</refsect1>
<refsect1>