New chapter on SRU support.
[idzebra-moved-to-github.git] / doc / server.xml
index ae02803..a4dd534 100644 (file)
 <chapter id="server">
- <!-- $Id: server.xml,v 1.1 2002-04-09 13:26:26 adam 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>
 
+  <!--
+   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
+  -->
+
+  <!-- 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>
      <term>-z</term>
      <listitem>
       <para>
-       Use the Z39.50 protocol (default). These two options complement
-       eachother. You can use both multiple times on the same command
-       line, between listener-specifications (see below). This way, you
-       can set up the server to listen for connections in both protocols
-       concurrently, on different local ports.
+       Use the Z39.50 protocol. Currently the only protocol supported.
+       The option is retained for historical reasons, and for future
+       extensions.
       </para>
      </listitem>
     </varlistentry>
      <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>
      <listitem>
       <para>
        Set the (approximate) maximum size of
-       present response messages. Default is 1024 Kb (1 Mb).
+       present response messages. Default is 1024 KB (1 MB).
       </para>
      </listitem>
     </varlistentry>
    </variablelist>
   </para>
-
-  <para>
-   A <replaceable>listener-address</replaceable> consists of a transport
-   mode followed by a colon (:) followed by a listener address.
-   The transport mode is either <literal>ssl</literal> or
-   <literal>tcp</literal>.
-  </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).
-  </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 tcp:@
-   </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>
 
     Z39.50 protocol, and the option bits for Search, Present, Scan,
     NamedResultSets, and concurrentOperations will be set, if requested by
     the client. The maximum PDU size is negotiated down to a maximum of
-    1Mb by default.
+    1 MB by default.
    </para>
 
   </sect2>
   <sect2 id="search">
    <title>Search</title>
 
+   <!--
+    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>
     The supported query type are 1 and 101. All operators are currently
     supported with the restriction that only proximity units of type "word"
    </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.
+         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>.
    <title>Sort</title>
 
    <para>
-    Z39.50 specifies three diffent types of sort criterias.
+    Z39.50 specifies three different types of sort criteria.
     Of these Zebra supports the attribute specification type in which
     case the use attribute specifies the "Sort register".
     Sort registers are created for those fields that are of type "sort" in
   </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