New chapter on SRU support.
[idzebra-moved-to-github.git] / doc / server.xml
index 8066c45..a4dd534 100644 (file)
 <chapter id="server">
- <!-- $Id: server.xml,v 1.3 2002-04-10 14:47:49 heikki Exp $ -->
+ <!-- $Id: server.xml,v 1.10 2006-02-15 10:58:01 mike Exp $ -->
  <title>The Z39.50 Server</title>
  
  <sect1 id="zebrasrv">
   <title>Running the Z39.50 Server (zebrasrv)</title>
 
-  <para>
+  <!--
    FIXME - We need to be consistent here, zebraidx had the options at the
            end, and lots of explaining text before them. Same for zebrasvr! -H
    FIXME - At least we need a small intro, what is zebrasvr, and how it
            can be run (inetd, nt service, stand-alone program, daemon...) -H
-  </para>
+  -->
+
+  <!-- re-write by MC, using the newly created input files for the 
+   zebrasrv manpage -->
 
+
+ <sect2><title>DESCRIPTION</title>
+    <para>Zebra is a high-performance, general-purpose structured text indexing
+   and retrieval engine. It reads structured records in a variety of input
+   formats (eg. email, XML, MARC) and allows access to them through exact
+   boolean search expressions and relevance-ranked free-text queries. 
+   </para>
+   <para>
+    <command>zebrasrv</command> is the Z39.50 and  <ulink url="http://www.loc.gov/standards/sru/srw/">SRW</ulink>/U frontend
+    server for the <command>Zebra</command> indexer.
+   </para> 
+   <para> 
+    On Unix you can run the <command>zebrasrv</command>
+    server from the command line - and put it
+    in the background. It may also operate under the inet daemon.
+    On WIN32 you can run the server as a console application or
+    as a WIN32 Service.
+   </para>
+  </sect2>
+
+ <sect2>
+   <title>SYNOPSIS</title>
+    &zebrasrv-synopsis;
+ </sect2>
+
+ <sect2>
+   <title>OPTIONS</title>
+    
+   <para>
+    The options for <command>zebrasrv</command> are the same
+    as those for YAZ' <command>yaz-ztest</command>.
+    Option <literal>-c</literal> specifies a Zebra configuration
+    file - if omitted <filename>zebra.cfg</filename> is read.
+   </para>
+   
+  &zebrasrv-options;
+  </sect2>
+  <sect2><title>VIRTUAL HOSTS</title>
+    <para>
+     <command>zebrasrv</command> uses the YAZ server frontend and does
+     support multiple virtual servers behind multiple listening sockets.
+    </para>
+    &zebrasrv-virtual;
+  </sect2>
+  <sect2><title>FILES</title>
+   <para>
+    <filename>zebra.cfg</filename>
+   </para>
+  </sect2>
+  <sect2><title>SEE ALSO</title>
+   <para>
+    <citerefentry>
+     <refentrytitle>zebraidx</refentrytitle>
+     <manvolnum>1</manvolnum>
+    </citerefentry>,
+    <citerefentry>
+     <refentrytitle>yaz-ztest</refentrytitle>
+     <manvolnum>8</manvolnum>
+    </citerefentry>
+   </para>
+   <para>
+    Section "The Z39.50 Server" in the Zebra manual.
+    <filename>http://www.indexdata.dk/zebra/doc/server.tkl</filename>
+   </para>
+   <para>
+    Section "Virtual Hosts" in the YAZ manual.
+    <filename>http://www.indexdata.dk/yaz/doc/server.vhosts.tkl</filename>
+   </para>
+   <para>
+    Section "Specification of <ulink url="http://www.loc.gov/standards/sru/cql/">CQL</ulink> to RPN mappings" in the YAZ manual.
+    <filename>http://www.indexdata.dk/yaz/doc/tools.tkl#tools.cql.map</filename>
+   </para>
+   <para>
+    The Zebra software is Copyright <command>Index Data</command> 
+    <filename>http://www.indexdata.dk</filename>
+    and distributed under the
+    GPLv2 license.
+   </para> 
+  </sect2>
+
+  <!--
   <para>
    <emphasis remap="bf">Syntax</emphasis>
 
    <screen>
-    zebrasrv &lsqb;options&rsqb; &lsqb;listener-address ...&rsqb;
+    zebrasrv [options] [listener-address ...]
    </screen>
 
   </para>
      <listitem>
       <para>
        The log level. Use a comma-separated list of members of the set
-       &lcub;fatal,debug,warn,log,all,none&rcub;.
+       {fatal,debug,warn,log,all,none}.
       </para>
      </listitem>
     </varlistentry>
     </varlistentry>
    </variablelist>
   </para>
-
-  <para>
-   A <replaceable>listener-address</replaceable> consists of an optional
-   transport mode followed by a colon (:) followed by a listener address.
-   The transport mode is either <literal>ssl</literal> or
-   <literal>tcp</literal> (default).
-  </para>
-
-  <para>
-   For TCP, an address has the form
-  </para>
-
-  <para>
-
-   <screen>
-    hostname | IP-number &lsqb;: portnumber&rsqb;
-   </screen>
-
-  </para>
-
-  <para>
-   The port number defaults to 210 (standard Z39.50 port) for
-   privileged users (root), and 9999 for normal users.
-  </para>
-
-  <para>
-   Examples
-  </para>
-
-  <para>
-
-   <screen>
-    tcp:dranet.dra.com
-
-    ssl:secure.lib.com:3000
-   </screen>
-
-  </para>
-
-  <para>
-   In both cases, the special hostname "@" is mapped to
-   the address INADDR_ANY, which causes the server to listen on any local
-   interface. To start the server listening on the registered port for
-   Z39.50, and to drop root privileges once the ports are bound, execute
-   the server like this (from a root shell):
-  </para>
-
-  <para>
-
-   <screen>
-    zebrasrv -u daemon @
-   </screen>
-
-  </para>
-
-  <para>
-   You can replace <literal>daemon</literal> with another user, eg.
-   your own account, or a dedicated IR server account.
-  </para>
-
-  <para>
-   The default behavior for <literal>zebrasrv</literal> is to establish
-   a single TCP/IP listener, for the Z39.50 protocol, on port 9999.
-  </para>
-
+  -->
  </sect1>
 
+
  <sect1 id="protocol-support">
   <title>Z39.50 Protocol Support and Behavior</title>
 
   <sect2 id="search">
    <title>Search</title>
 
-   <para>
+   <!--
     FIXME - Need to explain the string tag stuff before people get bogged 
             down with all these attribute numbers. Perhaps in its own
             chapter? -H
-   </para>
+   -->
 
    <para>
     The supported query type are 1 and 101. All operators are currently
    </para>
 
    <para>
-    The server has full support for piggy-backed present requests (see
+    The server has full support for piggy-backed retrieval (see
     also the following section).
    </para>
 
     A phrase register is created for those fields in the
     <literal>.abs</literal> file that contains a
     <literal>p</literal>-specifier.
+    <!-- ### whatever the hell _that_ is -->
    </para>
 
    <para>
     For the <emphasis>Truncation</emphasis> attribute,
     <emphasis>No Truncation</emphasis> is the default.
     <emphasis>Left Truncation</emphasis> is not supported.
-    <emphasis>Process &num;</emphasis> is supported, as is
+    <emphasis>Process # in search term</emphasis> is supported, as is
     <emphasis>Regxp-1</emphasis>.
     <emphasis>Regxp-2</emphasis> enables the fault-tolerant (fuzzy)
     search. As a default, a single error (deletion, insertion, 
        <term>x?</term>
        <listitem>
         <para>
-         Matches <emphasis>x</emphasis> once or twice. Priority: high.
-         FIXME Is this right? Std regexp has '?' meaning zero or one -H
+         Matches <emphasis>x</emphasis> zero or once. Priority: high.
         </para>
        </listitem>
       </varlistentry>
        </listitem>
       </varlistentry>
       <varlistentry>
-       <term>x&verbar;y</term>
+       <term>x|y</term>
        <listitem>
         <para>
          Matches either <emphasis>x</emphasis> or <emphasis>y</emphasis>.
   </sect2>
  </sect1>
 </chapter>
+
+
+<chapter id="sru-server">
+ <title>The SRU/SRW Server</title>
+
+ <sect1 id="sru-zebrasrv">
+  <title>Running the SRU/SRW Server (zebrasrv)</title>
+  <para>Placeholder for DocBook's facist schema</para>
+ </sect1>
+
+ <sect1 id="sru-support">
+  <title>SRU and SRW Protocol Support and Behavior</title>
+  <para>Placeholder for DocBook's facist schema</para>
+ </sect1>
+</chapter>
+
  <!-- Keep this comment at the end of the file
  Local variables:
  mode: sgml