zoom: update zoom info on contentProxy
[metaproxy-moved-to-github.git] / doc / zoom.xml
index b80df07..f88c5b4 100644 (file)
  <refsect1>
   <title>CONFIGURATION</title>
   <para>
-   The configuration consists of five parts: <literal>torus</literal>,
+   The configuration consists of six parts: <literal>torus</literal>,
    <literal>fieldmap</literal>, <literal>cclmap</literal>,
-   <literal>contentProxy</literal> and <literal>log</literal>.
+   <literal>contentProxy</literal>, <literal>log</literal>
+   and <literal>zoom</literal>.
   </para>
   <refsect2>
    <title>torus</title>
      <term>attribute <literal>url</literal></term>
      <listitem>
       <para>
-       URL of Web service to be used to fetch target profile
-       for a given database (udb). The special sequence
-       <literal>%db</literal> of the URL is replaced by the
-       actual database specified as part of Search.
+       URL of Web service to be used when fetch target profiles from
+       a remote service (Torus normally).
+      </para>
+      <para>
+       The sequence <literal>%query</literal> is replaced with a CQL
+       query for the Torus search.
       </para>
       <para>
        The special sequence <literal>%realm</literal> is replaced by value
        of attribute <literal>realm</literal> or by realm DATABASE argument.
       </para>
+      <para>
+       The special sequence <literal>%db</literal> is replaced with
+       a single database while searching. Note that this sequence
+       is no longer needed, because the <literal>%query</literal> can already
+       query for a single database by using CQL query
+       <literal>udb==...</literal>.
+      </para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term>attribute <literal>content_url</literal></term>
+     <listitem>
+      <para>
+       URL of Web service to be used to fetch target profile
+       for a given database (udb) of type content. Semantics otherwise like
+       <literal>url</literal> attribute above.
+      </para>
      </listitem>
     </varlistentry>
     <varlistentry>
      </listitem>
     </varlistentry>
     <varlistentry>
+     <term>attribute <literal>explain_xsl</literal></term>
+     <listitem>
+      <para>
+       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.
+      </para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term>attribute <literal>record_xsl</literal></term>
+     <listitem>
+      <para>
+       Specifies a stylesheet that converts retrieval records after
+       transform/literal operations.
+      </para>
+      <para>
+       When Metaproxy creates a content proxy session, the XSL parameter
+       <literal>cproxyhost</literal> is passed to the transform. 
+      </para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
      <term>element <literal>records</literal></term>
      <listitem>
       <para>
    </para>
    <variablelist>
     <varlistentry>
+     <term>attribute <literal>config_file</literal></term>
+     <listitem>
+      <para>
+       Specifies the file that configures the cf-proxy system. Metaproxy
+       uses setting <literal>sessiondir</literal> and
+       <literal>proxyhostname</literal> from that file to configure
+       name of proxy host and directory of parameter files for the cf-proxy.
+      </para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
      <term>attribute <literal>server</literal></term>
      <listitem>
       <para>
        host[:port]. That is without a method (such as HTTP) and optional
        port number.
       </para>
+      <note>
+       <para>
+       This setting is deprecated. Use the config_file (above)
+       to inform about the proxy server.
+       </para>
+      </note>
      </listitem>
     </varlistentry>
     <varlistentry>
        using the mkstemp(3) system call. The default value of this
        setting is <literal>/tmp/cf.XXXXXX.p</literal>.
       </para>
+      <note>
+       <para>
+       This setting is deprecated. Use the config_file (above)
+       to inform about the session file area.
+       </para>
+      </note>
      </listitem>
     </varlistentry>
    </variablelist>
     </varlistentry>
    </variablelist>
   </refsect2>
+
+  <refsect2>
+   <title>zoom</title>
+   <para>
+    The <literal>zoom</literal> element controls settings for the
+    ZOOM.
+   </para>
+   <variablelist>
+    <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>
   <variablelist>
    <varlistentry>
-    <term>authentication</term><listitem>
+    <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.
+     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.
    </varlistentry>
 
    <varlistentry>
-    <term>cfProxy</term><listitem>
+    <term id="zoom-torus-cfproxy">cfProxy</term><listitem>
     <para>
      Specifies HTTP proxy for the target in the form
      <replaceable>host</replaceable>:<replaceable>port</replaceable>.
    </listitem>
    </varlistentry>
 
-   <varlistentry id="contentConnector">
+   <varlistentry id="zoom-torus-contentConnector">
     <term>contentConnector</term><listitem>
     <para>
      Specifies a database for content-based proxy'ing.
    </varlistentry>
 
    <varlistentry>
+    <term>sruVersion</term><listitem>
+    <para>
+     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.
+    </para>
+   </listitem>
+   </varlistentry>
+
+   <varlistentry>
     <term>transform</term><listitem>
     <para>
      Specifies a XSL stylesheet filename to be used if record
      The value of this field is a string that generates a dynamic link
      based on record content. If the resulting string is non-zero in length
      a new field, <literal>metadata</literal> with attribute 
-     <literal>type="generated-url"</literal>.
+     <literal>type="generated-url"</literal> 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: <literal>${md-title[\s+/+/g]}</literal> takes
-     metadadata element <literal>title</literal> and converts one or more
+     metadata element <literal>title</literal> and converts one or more
      spaces to a plus character.
     </para>
-    <para>
-     If the <link linkend="contentConnector">contentConnector</link>
-     setting also defined, the resulting value is
-     augmented with a session string as well as the content proxy server.
-    </para>
    </listitem>
    </varlistentry>
    
  <refsect1>
   <title>DATABASE parameters</title>
   <para>
-   Extra information may be carried in the Z39.50 Datbase or SRU path,
+   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
   </para>
   <para>
    Where udb is the unique database recognised by the backend and parm1,
    value1, .. are parameters to be passed. The following describes the
-   supported parameters.
+   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).
   </para>
   <variablelist>  
    <varlistentry>
     <term>user</term>
     <listitem>
      <para>
-      Specifies user to be passed to backend. If this parameters is
+      Specifies user to be passed to backend. If this parameter is
       omitted, the user will be taken from TARGET profile setting
-      <literal>authentication</literal>.
+      <link linkend="zoom-torus-authentication">
+       <literal>authentication</literal>
+      </link>
+      .
      </para>
     </listitem>
    </varlistentry>
      <para>
       Specifies password to be passed to backend. If this parameters is
       omitted, the password will be taken from TARGET profile setting
-      <literal>authentication</literal>.
+      <link linkend="zoom-torus-authentication">
+       <literal>authentication</literal>
+      </link>
+      .
      </para>
     </listitem>
    </varlistentry>
     <term>proxy</term>
     <listitem>
      <para>
-      Specifies proxy to be for backend. If this parameters is
+      Specifies one or more proxies for backend. If this parameter is
       omitted, the proxy will be taken from TARGET profile setting
-      <literal>cfProxy</literal>.
+      <link linkend="zoom-torus-cfproxy">
+       <literal>cfProxy</literal></link>.
+       The parameter is a list of  comma-separated  host:port entries.
+       Bost host and port must be given for each proxy.
      </para>
     </listitem>
    </varlistentry>
     </listitem>
    </varlistentry>
    <varlistentry>
+    <term>nocproxy</term>
+    <listitem>
+     <para>
+      If this parameter is specified, content-proyxing is disabled
+      for the search.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
     <term>realm</term>
     <listitem>
      <para>
    <screen><![CDATA[
     <filter type="zoom">
       <torus
-         url="http://torus.indexdata.com/src/records/?query=udb%3D%db"
+         url="http://torus.indexdata.com/src/records/?query=%query"
         proxy="localhost:3128"
          />
       <fieldmap cql="cql.anywhere"/>
         </qual>
       </cclmap>
       <log apdu="true"/>
+      <zoom timeout="40"/>
     </filter>
 ]]>
    </screen>