+ <varlistentry>
+ <term>attribute <literal>timeout</literal></term>
+ <listitem>
+ <para>
+ Is an integer that specifies, in seconds, how long an operation
+ may take before ZOOM gives up. Default value is 40.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+
+ </refsect1>
+ <refsect1>
+ <title>QUERY HANDLING</title>
+ <para>
+ The ZOOM filter accepts three query types: RPN(Type-1), CCL and
+ CQL.
+ </para>
+ <para>
+ 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.
+ </para>
+ <para>
+ Step 1: for RPN, the query is passed un-modified to the target.
+ </para>
+ <para>
+ Step 1: for CCL, the query is converted to RPN via
+ <link linkend="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 1: For CQL, the query is converted to CCL. The mappings of
+ CQL fields to CCL fields are handled by
+ <link linkend="fieldmap"><literal>fieldmap</literal></link>
+ elements as part of the target profile. The resulting query, CCL,
+ is the converted to RPN using the schema mentioned earlier (via
+ <literal>cclmap</literal>).
+ </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
+ type.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>SORTING</title>
+ <para>
+ 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>.
+ </para>
+ <para>
+ If a sort field that does not have an equivalent
+ <literal>sortmap_</literal>-mapping is passed un-modified through the
+ conversion. It doesn't throw a diagnostic.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>TARGET PROFILE</title>
+ <para>
+ The ZOOM module is driven by a number of settings that specifies how
+ to handle each target.
+ Note that unknown elements are silently <emphasis>ignored</emphasis>.
+ </para>
+ <para>
+ The elements, in alphabetical order, are:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term id="zoom-torus-authentication">authentication</term><listitem>
+ <para>
+ Authentication parameters to be sent to the target. For
+ Z39.50 targets, this will be sent as part of the
+ Init Request. Authentication consists of two components: username
+ and password, separated by a slash.
+ </para>
+ <para>
+ If this value is omitted or empty no authentication information is sent.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="cclmap">
+ <term>cclmap_<replaceable>field</replaceable></term><listitem>
+ <para>
+ 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).
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>cfAuth</term><listitem>
+ <para>
+ When cfAuth is defined, its value will be used as authentication
+ to backend target and authentication setting will be specified
+ as part of a database. This is like a "proxy" for authentication and
+ is used for Connector Framework based targets.
+ </para>
+ </listitem>
+ </varlistentry>