Added SRU support
[pazpar2-moved-to-github.git] / doc / pazpar2_conf.xml
1 <?xml version="1.0" standalone="no"?>
2 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"
3  "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
4 [
5      <!ENTITY % local SYSTEM "local.ent">
6      %local;
7      <!ENTITY % entities SYSTEM "entities.ent">
8      %entities;
9      <!ENTITY % idcommon SYSTEM "common/common.ent">
10      %idcommon;
11 ]>
12 <refentry id="pazpar2_conf">
13  <refentryinfo>
14   <productname>Pazpar2</productname>
15   <productnumber>&version;</productnumber>
16  </refentryinfo>
17  <refmeta>
18   <refentrytitle>Pazpar2 conf</refentrytitle>
19   <manvolnum>5</manvolnum>
20  </refmeta>
21  
22  <refnamediv>
23   <refname>pazpar2_conf</refname>
24   <refpurpose>Pazpar2 Configuration</refpurpose>
25  </refnamediv>
26  
27  <refsynopsisdiv>
28   <cmdsynopsis>
29    <command>pazpar2.conf</command>
30   </cmdsynopsis>
31  </refsynopsisdiv>
32  
33  <refsect1><title>DESCRIPTION</title>
34   <para>
35    The Pazpar2 configuration file, together with any referenced XSLT files,
36    govern Pazpar2's behavior as a client, and control the normalization and
37    extraction of data elements from incoming result records, for the
38    purposes of merging, sorting, facet analysis, and display.
39   </para>
40   
41   <para>
42    The file is specified using the option -f on the Pazpar2 command line.
43    There is not presently a way to reload the configuration file without
44    restarting Pazpar2, although this will most likely be added some time
45    in the future.
46   </para>
47  </refsect1>
48  
49  <refsect1><title>FORMAT</title>
50   <para>
51    The configuration file is XML-structured. It must be valid XML. All
52    elements specific to Pazpar2 should belong to the namespace
53    <literal>http://www.indexdata.com/pazpar2/1.0</literal> 
54    (this is assumed in the
55    following examples). The root element is named <literal>pazpar2</literal>.
56    Under the  root element are a number of elements which group categories of
57    information. The categories are described below.
58   </para>
59   
60   <refsect2 id="config-server"><title>server</title>
61    <para>
62     This section governs overall behavior of the client. The data
63     elements are described below.
64    </para>
65    <variablelist> <!-- level 1 -->
66     <varlistentry>
67      <term>listen</term>
68      <listitem>
69       <para>
70        Configures the webservice -- this controls how you can connect
71        to Pazpar2 from your browser or server-side code. The
72        attributes 'host' and 'port' control the binding of the
73        server. The 'host' attribute can be used to bind the server to
74        a secondary IP address of your system, enabling you to run
75        Pazpar2 on port 80 alongside a conventional web server. You
76        can override this setting on the command line using the option -h.
77       </para>
78      </listitem>
79     </varlistentry>
80     
81     <varlistentry>
82      <term>proxy</term>
83      <listitem>
84       <para>
85        If this item is given, Pazpar2 will forward all incoming HTTP
86        requests that do not contain the filename 'search.pz2' to the
87        host and port specified using the 'host' and 'port'
88        attributes. The 'myurl' attribute is required, and should provide
89        the base URL of the server. Generally, the HTTP URL for the host
90        specified in the 'listen' parameter. This functionality is
91        crucial if you wish to use
92        Pazpar2 in conjunction with browser-based code (JS, Flash,
93        applets, etc.) which operates in a security sandbox. Such code
94        can only connect to the same server from which the enclosing
95        HTML page originated. Pazpar2s proxy functionality enables you
96        to host all of the main pages (plus images, CSS, etc) of your
97        application on a conventional webserver, while efficiently
98        processing webservice requests for metasearch status, results,
99        etc.
100       </para>
101      </listitem>
102     </varlistentry>
103     
104     <varlistentry>
105      <term>relevance</term>
106      <listitem>
107       <para>
108        Specifies ICU tokenization and normalization rules
109        for tokens that are used in Pazpar2's relevance ranking.  The 'id'
110        attribute is currently not used, and the 'locale'
111        attribute must be set to one of the locale strings
112        defined in ICU. The child elements listed below can be
113        in any order, except the 'index' element which logically
114        belongs to the end of the list. The stated tokenization,
115        normalization and charmapping instructions are performed
116        in order from top to bottom. 
117       </para>
118       <variablelist> <!-- Level 2 -->
119        <varlistentry><term>casemap</term>
120         <listitem>
121          <para>
122           The attribute 'rule' defines the direction of the
123           per-character casemapping, allowed values are "l"
124           (lower), "u" (upper), "t" (title).  
125          </para>
126         </listitem>
127        </varlistentry>
128        <varlistentry><term>normalize</term>
129         <listitem>
130          <para>
131           Normalization and transformation of tokens follows
132           the rules defined in the 'rule' attribute. For
133           possible values we refer to the extensive ICU
134           documentation found at the 
135           <ulink url="&url.icu.transform;">ICU
136            transformation</ulink> home page. Set filtering
137           principles are explained at the 
138           <ulink url="&url.icu.unicode.set;">ICU set and
139            filtering</ulink> page.
140          </para>
141         </listitem>
142        </varlistentry>
143        <varlistentry><term>tokenize</term>
144         <listitem>
145          <para>
146           Tokenization is the only rule in the ICU chain
147           which splits one token into multiple tokens. The
148           'rule' attribute may have the following values:
149           "s" (sentence), "l" (line-break), "w" (word), and
150           "c" (character), the later probably not being
151           very useful in a pruning Pazpar2 installation. 
152          </para>
153         </listitem>
154        </varlistentry>
155        <varlistentry><term>index</term>
156         <listitem>
157          <para>
158           Finally the 'index' element instruction - without
159           any 'rule' attribute - is used to store the tokens
160           after chain processing in the relevance ranking
161           unit of Pazpar2. It will always be the last
162           instruction in the chain.
163          </para>
164         </listitem>
165        </varlistentry>
166       </variablelist>
167      </listitem>
168     </varlistentry>
169
170     <varlistentry>
171      <term>sort</term>
172      <listitem>
173       <para>
174        Specifies ICU tokenization and normalization rules
175        for tokens that are used in Pazpar2's sorting. The contents
176        is similar to that of <literal>relevance</literal>.
177       </para>
178      </listitem>
179     </varlistentry>
180     
181     <varlistentry>
182      <term>mergekey</term>
183      <listitem>
184       <para>
185        Specifies ICU tokenization and normalization rules
186        for tokens that are used in Pazpar2's mergekey. The contents
187        is similar to that of <literal>relevance</literal>.
188       </para>
189      </listitem>
190     </varlistentry>
191     
192     <varlistentry>
193      <term>service</term>
194      <listitem>
195       <para>
196        This nested element controls the behavior of Pazpar2 with
197        respect to your data model. In Pazpar2, incoming records are
198        normalized, using XSLT, into an internal representation.
199        The 'service' section controls the further processing and
200        extraction of data from the internal representation, primarily
201        through the 'metadata' sub-element.
202       </para>
203       
204       <variablelist> <!-- Level 2 -->
205        <varlistentry><term>metadata</term>
206         <listitem>
207          <para>
208           One of these elements is required for every data element in
209           the internal representation of the record (see
210           <xref linkend="data_model"/>. It governs
211           subsequent processing as pertains to sorting, relevance
212           ranking, merging, and display of data elements. It supports
213           the following attributes:
214          </para>
215          
216          <variablelist> <!-- level 3 -->
217           <varlistentry><term>name</term>
218            <listitem>
219             <para>
220              This is the name of the data element. It is matched
221              against the 'type' attribute of the
222              'metadata' element 
223              in the normalized record. A warning is produced if
224              metadata elements with an unknown name are
225              found in the 
226              normalized record. This name is also used to
227              represent 
228              data elements in the records returned by the
229              webservice API, and to name sort lists and browse
230              facets.
231             </para>
232            </listitem>
233           </varlistentry>
234           
235           <varlistentry><term>type</term>
236            <listitem>
237             <para>
238              The type of data element. This value governs any
239              normalization or special processing that might take
240              place on an element. Possible values are 'generic'
241              (basic string), 'year' (a range is computed if
242              multiple years are found in the record). Note: This
243              list is likely to increase in the future.
244             </para>
245            </listitem>
246           </varlistentry>
247           
248           <varlistentry><term>brief</term>
249            <listitem>
250             <para>
251              If this is set to 'yes', then the data element is
252              includes in brief records in the webservice API. Note
253              that this only makes sense for metadata elements that
254              are merged (see below). The default value is 'no'.
255             </para>
256            </listitem>
257           </varlistentry>
258           
259           <varlistentry><term>sortkey</term>
260            <listitem>
261             <para>
262              Specifies that this data element is to be used for
263              sorting. The possible values are 'numeric' (numeric
264              value), 'skiparticle' (string; skip common, leading
265              articles), and 'no' (no sorting). The default value is
266              'no'.
267             </para>
268            </listitem>
269           </varlistentry>
270           
271           <varlistentry><term>rank</term>
272            <listitem>
273             <para>
274              Specifies that this element is to be used to
275              help rank 
276              records against the user's query (when ranking is
277              requested). The value is an integer, used as a
278              multiplier against the basic TF*IDF score. A value of
279              1 is the base, higher values give additional
280              weight to 
281              elements of this type. The default is '0', which
282              excludes this element from the rank calculation.
283             </para>
284            </listitem>
285           </varlistentry>
286           
287           <varlistentry><term>termlist</term>
288            <listitem>
289             <para>
290              Specifies that this element is to be used as a
291              termlist, or browse facet. Values are tabulated from
292              incoming records, and a highscore of values (with
293              their associated frequency) is made available to the
294              client through the webservice API. 
295              The possible values
296              are 'yes' and 'no' (default).
297             </para>
298            </listitem>
299           </varlistentry>
300           
301           <varlistentry><term>merge</term>
302            <listitem>
303             <para>
304              This governs whether, and how elements are extracted
305              from individual records and merged into cluster
306              records. The possible values are: 'unique' (include
307              all unique elements), 'longest' (include only the
308              longest element (strlen), 'range' (calculate a range
309              of values across all matching records), 'all' (include
310              all elements), or 'no' (don't merge; this is the
311                           default);
312             </para>
313            </listitem>
314           </varlistentry>
315
316           <varlistentry><term>setting</term>
317            <listitem>
318             <para>
319               This attribute allows you to make use of static database
320               settings in the processing of records. Three possible values
321               are allowed. 'no' is the default and doesn't do anything.
322               'postproc' copies the value of a setting with the same name
323               into the output of the normalization stylesheet(s). 'parameter'
324               makes the value of a setting with the same name available 
325               as a parameter to the normalization stylesheet, so you
326               can further process the value inside of the stylesheet, or use
327               the value to decide how to deal with other data values.
328             </para>
329             <para>
330             </para>
331               The purpose of using settings in this way can either be to
332               control the behavior of normalization stylesheet in a database-
333               dependent way, or to easily make database-dependent values
334               available to display-logic in your user interface, without having
335               to implement complicated interactions between the user interface
336               and your configuration system.
337            </listitem>
338           </varlistentry>
339          </variablelist> <!-- attributes to metadata -->
340          
341         </listitem>
342        </varlistentry>
343       </variablelist>     <!-- Data elements in service directive -->
344      </listitem>
345     </varlistentry>
346    </variablelist>           <!-- Data elements in server directive -->
347   </refsect2>
348   
349  </refsect1>
350  
351  <refsect1><title>EXAMPLE</title>
352   <para>Below is a working example configuration:
353   <screen><![CDATA[
354 <?xml version="1.0" encoding="UTF-8"?>
355 <pazpar2 xmlns="http://www.indexdata.com/pazpar2/1.0">
356
357 <server>
358   <listen port="9004"/>
359   <proxy host="us1.indexdata.com" myurl="us1.indexdata.com"/>
360
361   <!-- optional ICU ranking configuration example -->
362   <!--
363   <icu_chain id="el:word" locale="el">
364     <normalize rule="[:Control:] Any-Remove"/>
365     <tokenize rule="l"/>
366     <normalize rule="[[:WhiteSpace:][:Punctuation:]] Remove"/>
367     <casemap rule="l"/>
368     <index/>
369   </icu_chain>
370   -->
371
372   <service>
373     <metadata name="title" brief="yes" sortkey="skiparticle" merge="longest" rank="6"/>
374     <metadata name="isbn" merge="unique"/>
375     <metadata name="date" brief="yes" sortkey="numeric" type="year" merge="range"
376             termlist="yes"/>
377     <metadata name="author" brief="yes" termlist="yes" merge="longest" rank="2"/>
378     <metadata name="subject" merge="unique" termlist="yes" rank="3"/>
379     <metadata name="url" merge="unique"/>
380   </service>
381 </server>
382
383 </pazpar2>
384 ]]></screen>
385   </para>
386  </refsect1> 
387  
388  <refsect1 id="target_settings"><title>TARGET SETTINGS</title>
389   <para>
390    Pazpar2 features a cunning scheme by which you can associate various
391    kinds of attributes, or settings with search targets. This can be done
392    through XML files which are read at startup; each file can associate
393    one or more settings with one or more targets. The file format is generic
394    in nature, designed to support a wide range of application requirements. The
395    settings can be purely technical things, like, how to perform a title
396    search against a given target, or it can associate arbitrary name=value
397    pairs with groups of targets -- for instance, if you would like to
398    place all commercial full-text bases in one group for selection
399    purposes, or you would like to control what targets are accessible
400    to users by default. Per-database settings values can even be used
401    to drive sorting, facet/termlist generation, or end-user interface display
402    logic.
403   </para>
404   
405   <para>
406    During startup, Pazpar2 will recursively read a specified directory
407    (can be identified in the pazpar2.cfg file or on the command line), and
408    process any settings files found therein.
409   </para>
410   
411   <para>
412    Clients of the Pazpar2 webservice interface can selectively override
413    settings for individual targets within the scope of one session. This
414    can be used in conjunction with an external authentication system to
415    determine which resources are to be accessible to which users. Pazpar2
416    itself has no notion of end-users, and so can be used in conjunction
417    with any type of authentication system. Similarly, the authentication
418    tokens submitted to access-controlled search targets can similarly be
419    overridden, to allow use of Pazpar2 in a consortial or multi-library
420    environment, where different end-users may need to be represented to
421    some search targets in different ways. This, again, can be managed
422    using an external database or other lookup mechanism. Setting overrides
423    can be performed either using the 'init' or the 'settings' webservice
424    command.
425   </para>
426   
427   <para>
428    In fact, every setting that applies to a database (except pz:id, which
429    can only be used for filtering targets to use for a search) can be overridden
430    on a per-session basis. This allows the client to override specific CCL fields
431    for searching, etc., to meet the needs of a session or user.
432   </para>
433   
434   <para>
435    Finally, as an extreme case of this, the webservice client can
436    introduce entirely new targets, on the fly, as part of the init or
437    settings command. This is useful if you desire to manage information
438    about your search targets in a separate application such as a database.
439    You do not need any static settings file whatsoever to run Pazpar2 -- as
440    long as the webservice client is prepared to supply the necessary
441    information at the beginning of every session.
442   </para>
443   
444   <note>
445    <para>
446     The following discussion of practical issues related to session and settings
447     management are cast in terms of a user interface based on Ajax/Javascript
448     technology. It would apply equally well to many other kinds of browser-based logic.
449    </para>
450   </note>
451   
452   <para>
453    Typically, a Javascript client is not allowed to  directly alter the parameters
454    of a session. There are two reasons for this. One has to do with access
455    to information; typically, information about a user will be stored in a
456    system on the server side, or it will be accessible in some way from the server.
457    However, since the Javascript client cannot be entirely trusted (some hostile
458    agent might in fact 'pretend' to be a regular ws client), it is more robust
459    to control session settings from scripting that you run as part of your
460    webserver. Typically, this can be handled during the session initialization,
461    as follows:
462   </para>
463   
464   <para>
465    Step 1: The Javascript client loads, and asks the webserver for a new Pazpar2
466    session ID. This can be done using a Javascript call, for instance. Note that
467    it is possible to submit Ajax HTTPXmlRequest calls either to Pazpar2 or to the
468    webserver that Pazpar2 is proxying for. See (XXX Insert link to Pazpar2 protocol).
469     </para>
470   
471   <para>
472    Step 2: Code on the webserver authenticates the user, by database lookup,
473    LDAP access, NCIP, etc. Determines which resources the user has access to,
474    and any user-specific parameters that are to be applied during this session.
475   </para>
476   
477   <para>
478    Step 3: The webserver initializes a new Pazpar2 settings, and sets user-specific
479    parameters as necessary, using the init webservice command. A new session ID is
480    returned.
481   </para>
482   
483   <para>
484    Step 4: The webserver returns this session ID to the Javascript client, which then
485    uses the session ID to submit searches, show results, etc.
486   </para>
487   
488   <para>
489    Step 5: When the Javascript client ceases to use the session, Pazpar2 destroys
490    any session-specific information.
491   </para>
492
493   <refsect2><title>SETTINGS FILE FORMAT</title>
494    <para>
495     Each file contains a root element named &lt;settings&gt;. It may
496     contain one or more &lt;set&gt; elements. The settings and set
497     elements may contain the following attributes. Attributes in the set node
498     overrides those in the setting root element. Each set node must
499     specify (directly, or inherited from the parent node) at least a
500     target, name, and value.
501    </para>
502    
503    <variablelist> 
504     <varlistentry>
505      <term>target</term>
506      <listitem>
507       <para>
508        This specifies the search target to which this setting should be
509        applied. Targets are identified by their Z39.50 URL, generally
510        including the host, port, and database name, (e.g.
511        <literal>bagel.indexdata.com:210/marc</literal>).
512        Two wildcard forms are accepted:
513        * (asterisk) matches all known targets;
514        <literal>bagel.indexdata.com:210/*</literal> matches all
515        known databases on the given host.
516       </para>
517       <para>
518        A precedence system determines what happens if there are
519        overlapping values for the same setting name for the same
520        target. A setting for a specific target name overrides a
521        setting which specifies target using a wildcard. This makes it
522        easy to set defaults for all targets, and then override them
523        for specific targets or hosts. If there are
524        multiple overlapping settings with the same name and target
525        value, the 'precedence' attribute determines what happens.
526       </para>
527      </listitem>
528     </varlistentry>
529     <varlistentry>
530      <term>name</term>
531      <listitem>
532       <para>
533        The name of the setting. This can be anything you like.
534        However, Pazpar2 reserves a number of setting names for
535        specific purposes, all starting with 'pz:', and it is a good
536        idea to avoid that prefix if you make up your own setting
537        names. See below for a list of reserved variables.
538       </para>
539      </listitem>
540     </varlistentry>
541     <varlistentry>
542      <term>value</term>
543      <listitem>
544       <para>
545        The value of the setting. Generally, this can be anything you
546        want -- however, some of the reserved settings may expect
547        specific kinds of values.
548       </para>
549      </listitem>
550     </varlistentry>
551     <varlistentry>
552      <term>precedence</term>
553      <listitem>
554       <para>
555        This should be an integer. If not provided, the default value
556        is 0. If two (or more) settings have the same content for
557        target and name, the precedence value determines the outcome.
558        If both settings have the same precedence value, they are both
559        applied to the target(s). If one has a higher value, then the
560        value of that setting is applied, and the other one is ignored.
561       </para>
562      </listitem>
563     </varlistentry>
564    </variablelist>
565    
566    <para>
567     By setting defaults for target, name, or value in the root
568     settings node, you can use the settings files in many different
569     ways. For instance, you can use a single file to set defaults for
570     many different settings, like search fields, retrieval syntaxes,
571     etc. You can have one file per server, which groups settings for
572     that server or target. You could also have one file which associates
573     a number of targets with a given setting, for instance, to associate
574     many databases with a given category or class that makes sense
575     within your application.
576    </para>
577    
578    <para>
579     The following examples illustrate uses of the settings system to
580     associate settings with targets to meet different requirements.
581    </para>
582    
583    <para>
584     The example below associates a set of default values that can be
585     used across many targets. Note the wildcard for targets.
586     This associates the given settings with all targets for which no
587     other information is provided.
588     <screen><![CDATA[
589 <settings target="*">
590
591   <!-- This file introduces default settings for pazpar2 -->
592
593   <!-- mapping for unqualified search -->
594   <set name="pz:cclmap:term" value="u=1016 t=l,r s=al"/>
595
596   <!-- field-specific mappings -->
597   <set name="pz:cclmap:ti" value="u=4 s=al"/>
598   <set name="pz:cclmap:su" value="u=21 s=al"/>
599   <set name="pz:cclmap:isbn" value="u=7"/>
600   <set name="pz:cclmap:issn" value="u=8"/>
601   <set name="pz:cclmap:date" value="u=30 r=r"/>
602
603   <!-- Retrieval settings -->
604
605   <set name="pz:requestsyntax" value="marc21"/>
606   <set name="pz:elements" value="F"/>
607
608   <!-- Query encoding -->
609   <set name="pz:queryencoding" value="iso-8859-1"/>
610
611   <!-- Result normalization settings -->
612
613   <set name="pz:nativesyntax" value="iso2709"/>
614   <set name="pz:xslt" value="../etc/marc21.xsl"/>
615
616 </settings>
617
618         ]]></screen>
619    </para>
620    
621    <para>
622     The next example shows certain settings overridden for one target,
623     one which returns XML records containing DublinCore elements, and
624     which furthermore requires a username/password.
625     <screen><![CDATA[
626 <settings target="funkytarget.com:210/db1">
627   <set name="pz:requestsyntax" value="xml"/>
628   <set name="pz:nativesyntax" value="xml"/>
629   <set name="pz:xslt" value="../etc/dublincore.xsl"/>
630
631   <set name="pz:authentication" value="myuser/password"/>
632 </settings>
633         ]]></screen>
634    </para>
635    
636    <para>
637     The following example associates a specific name/value combination
638     with a number of targets. The targets below are access-restricted,
639     and can only be used by users with special credentials.
640     <screen><![CDATA[
641 <settings name="pz:allow" value="0">
642   <set target="funkytarget.com:210/*"/>
643   <set target="commercial.com:2100/expensiveDb"/>
644 </settings>
645         ]]></screen>
646    </para>
647    
648   </refsect2>
649   
650   <refsect2><title>RESERVED SETTING NAMES</title>
651    <para>
652     The following setting names are reserved by Pazpar2 to control the
653     behavior of the client function.
654    </para>
655    
656    <variablelist>
657     <varlistentry>
658      <term>pz:cclmap:xxx</term>
659      <listitem>
660       <para>
661        This establishes a CCL field definition or other setting, for
662        the purpose of mapping end-user queries. XXX is the field or
663        setting name, and the value of the setting provides parameters
664        (e.g. parameters to send to the server, etc.). Please consult
665        the YAZ manual for a full overview of the many capabilities of
666        the powerful and flexible CCL parser.
667       </para>
668       <para>
669        Note that it is easy to establish a set of default parameters,
670        and then override them individually for a given target.
671       </para>
672      </listitem>
673     </varlistentry>
674     <varlistentry>
675      <term>pz:requestsyntax</term>
676      <listitem>
677       <para>
678        This specifies the record syntax to use when requesting
679        records from a given server. The value can be a symbolic name like
680        marc21 or xml, or it can be a Z39.50-style dot-separated OID.
681       </para>
682      </listitem>
683     </varlistentry>
684     <varlistentry>
685      <term>pz:elements</term>
686      <listitem>
687       <para>
688        The element set name to be used when retrieving records from a
689        server.
690       </para>
691      </listitem>
692     </varlistentry>
693     <varlistentry>
694      <term>pz:piggyback</term>
695      <listitem>
696       <para>
697        Piggybacking enables the server to retrieve records from the
698        server as part of the search response in Z39.50. Almost all
699        servers support this (or fail it gracefully), but a few
700        servers will produce undesirable results.
701        Set to '1' to enable piggybacking, '0' to disable it. Default
702        is 1 (piggybacking enabled).
703       </para>
704      </listitem>
705     </varlistentry>
706     <varlistentry>
707      <term>pz:nativesyntax</term>
708      <listitem>
709       <para>
710        The representation (syntax) of the retrieval records. Currently
711        recognized values are iso2709 and xml.
712       </para>
713       <para>
714        For iso2709, can also specify a native character set, e.g. "iso2709;latin-1".
715        If no character set is provided, MARC-8 is assumed.
716       </para>
717      </listitem>
718     </varlistentry>
719
720     <varlistentry>
721      <term>pz:queryencoding</term>
722      <listitem>
723       <para>
724         The encoding of the search terms that a target accepts. Most
725         targets do not honor UTF-8 in which case this needs to be specified.
726         Each term in a query will be converted if this setting is given.
727       </para>
728      </listitem>
729     </varlistentry>
730
731     <varlistentry>
732      <term>pz:xslt</term>
733      <listitem>
734       <para>
735        Provides the path of an XSLT stylesheet which will be used to
736        map incoming records to the internal representation.
737       </para>
738      </listitem>
739     </varlistentry>
740     <varlistentry>
741      <term>pz:authentication</term>
742      <listitem>
743       <para>
744        Sets an authentication string for a given server. See the section on
745        authorization and authentication for discussion.
746       </para>
747      </listitem>
748     </varlistentry>
749     <varlistentry>
750      <term>pz:allow</term>
751      <listitem>
752       <para>
753        Allows or denies access to the resources it is applied to. Possible
754        values are '0' and '1'. The default is '1' (allow access to this resource).
755        See the manual section on authorization and authentication for discussion
756        about how to use this setting.
757       </para>
758      </listitem>
759     </varlistentry>
760     <varlistentry>
761      <term>pz:maxrecs</term>
762      <listitem>
763       <para>
764        Controls the maximum number of records to be retrieved from a
765        server. The default is 100 (not yet implemented).
766       </para>
767      </listitem>
768     </varlistentry>
769     <varlistentry>
770      <term>pz:id</term>
771      <listitem>
772       <para>
773        This setting can't be 'set' -- it contains the ID (normally
774        ZURL) for a given target, and is useful for filtering --
775        specifically when you want to select one or more specific
776        targets in the search command.
777       </para>
778      </listitem>
779     </varlistentry>
780     <varlistentry>
781      <term>pz:zproxy</term>
782      <listitem>
783       <para>
784        The 'pz:zproxy' setting has the value syntax 
785        'host.internet.adress:port', it is used to tunnel Z39.50
786        requests through the named Z39.50 proxy.
787       </para>
788      </listitem>
789     </varlistentry>
790
791     <varlistentry>
792      <term>pz:apdulog</term>
793      <listitem>
794       <para>
795        If the 'pz:apdulog' setting is defined and has other value than 0,
796        then Z39.50 APDUs are written to the log.
797       </para>
798      </listitem>
799     </varlistentry>
800
801     <varlistentry>
802       <term>pz:sru</term>
803       <listitem>
804         <para>
805           This setting enables SRU/SRW support. It has three possible settings.
806           'get', enables SRU access through GET requests. 'post' enables SRU/POST
807           support, less commonly supported, but useful if very large requests are
808           to be submitted. 'srw' enables the SRW variation of the protocol.
809         </para>
810       </listitem>
811     </varlistentry>
812    </variablelist>
813   </refsect2>
814
815  </refsect1>
816  <refsect1><title>SEE ALSO</title>
817   <para>
818    Pazpar2:
819    <citerefentry>
820     <refentrytitle>pazpar2</refentrytitle>
821     <manvolnum>8</manvolnum>
822    </citerefentry>
823   </para>
824   <para>
825    Pazpar2 protocol:
826    <citerefentry>
827     <refentrytitle>pazpar2_protocol</refentrytitle>
828     <manvolnum>7</manvolnum>
829    </citerefentry>
830   </para>
831  </refsect1>
832 </refentry>
833 <!-- Keep this comment at the end of the file
834 Local variables:
835 mode: sgml
836 sgml-omittag:t
837 sgml-shorttag:t
838 sgml-minimize-attributes:nil
839 sgml-always-quote-attributes:t
840 sgml-indent-step:1
841 sgml-indent-data:t
842 sgml-parent-document:nil
843 sgml-local-catalogs: nil
844 sgml-namecase-general:t
845 End:
846 -->