1 <?xml version="1.0" standalone="no"?>
2 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
3 "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
5 <!ENTITY % local SYSTEM "local.ent">
7 <!ENTITY % entities SYSTEM "entities.ent">
9 <!ENTITY % idcommon SYSTEM "common/common.ent">
12 <refentry id="pazpar2_protocol">
14 <productname>Pazpar2</productname>
15 <productnumber>&version;</productnumber>
16 <info><orgname>Index Data</orgname></info>
19 <refentrytitle>Pazpar2 protocol</refentrytitle>
20 <manvolnum>7</manvolnum>
21 <refmiscinfo class="manual">Conventions and miscellaneous</refmiscinfo>
25 <refname>pazpar2_protocol</refname>
26 <refpurpose>The webservice protocol of Pazpar2</refpurpose>
30 <title>DESCRIPTION</title>
32 Webservice requests are any that refer to filename "search.pz2". Arguments
33 are GET-style parameters. Argument 'command' is always required and specifies
34 the operation to perform. Any request not recognized as a webservice
35 request is forwarded to the HTTP server specified in the configuration
36 using the proxy setting.
37 This way, a regular webserver can host the user interface (itself dynamic
38 or static HTML), and Ajax-style calls can be used from JS (or any other
39 client-based scripting environment) to interact with the search logic
43 Each command is described in sub sections to follow.
45 <refsect2 id="command-init">
48 Initializes a session.
49 Returns session ID to be used in subsequent requests. If
50 a server ID is given in the Pazpar2 server section, then a
51 period (.) and the server ID is appended to the session ID.
56 search.pz2?command=init
65 <session>2044502273</session>
69 The init command may take a number of setting parameters, similar to
70 the 'settings' command described below. These settings are immediately
71 applied to the new session. Other parameters for init are:
77 If this is defined and the value is non-zero, the session will
78 not use the predefined databases in the configuration; only those
79 specified in the settings parameters (per session databases).
88 If this is defined it specifies a service ID. Makes the session use
89 the service with this ID. If this is setting is omitted, the
90 session will use the unnamed service in the Pazpar2 configuration.
98 <refsect2 id="command-ping">
101 Keeps a session alive. An idle session will time out after one minute.
102 The ping command can be used to keep the session alive absent other
104 It is suggested that any browser client have a simple alarm handler which
105 sends a ping every 50 seconds or so once a session has been initialized.
110 search.pz?command=ping&session=2044502273
121 <refsect2 id="command-settings">
122 <title>settings</title>
124 The settings command applies session-specific settings to one or more
125 databases. A typical function of this is to enable access to
126 restricted resources for registered users, or to set a user- or
127 library-specific username/password to use against a target. Each
128 setting parameter has the form name[target]=value, where name is the
129 name of the setting (e.g. pz:authentication), target is a target ID,
130 or possibly a wildcard, and value is the desired value for the
135 Because the settings command manipulates potentially sensitive
136 information, it is possible to configure Pazpar2 to only allow access
137 to this command from a trusted site -- usually from server-side
138 scripting, which in turn is responsible for authenticating the user,
139 and possibly determining which resources he has access to, etc.
144 As a shortcut, it is also possible to override settings directly in
152 search.pz?command=settings&session=2044502273&pz:allow[search.com:210/db1]=1
163 <refsect2 id="command-search">
164 <title>search</title>
166 Launches a search, parameters:
189 Limits the search to a given set of targets specified by the
190 filter. The filter consists a comma separated list of
191 setting+operator+args pairs. The setting is a Pazpar2 setting
192 (such as <literal>pz:id</literal>).
193 The operator is either = (string match)
194 or ~ (substring match). The args is a list of values separated
195 by | (or , one of the values). The idea is that only targets
196 with a setting matching one of the values given will be included
205 Narrows the search by one or more fields (typicall facets).
206 The limit is sequence of one or more field=value pairs separate
208 A value that contains a comma should be escaped by backslash (\).
209 The pz:fazetmap configuration item defines how the searches are
210 mapped to a database.
215 <term>startrecs</term>
218 Specifies the first record to retrieve from each target.
219 The first record in a result set for a target is numbered 0, next
220 record is numbered 2. By default maxrecs is 0.
228 Specifies the maximum number of records to retrieve from each
229 target. The default value is 100. This setting has same meaning
230 as per-target setting pz:maxrecs . If pz:maxrecs is set, it takes
231 precedence over argument maxrecs.
241 search.pz2?session=2044502273&command=search&query=computer+science
253 <refsect2 id="command-stat">
256 Provides status information about an ongoing search. Parameters:
273 search.pz2?session=2044502273&command=stat
278 <activeclients>3</activeclients>
279 <hits>7</hits> -- Total hitcount
280 <records>7</records> -- Total number of records fetched in last query
281 <clients>1</clients> -- Total number of associated clients
282 <unconnected>0</unconnected> -- Number of disconnected clients
283 <connecting>0</connecting> -- Number of clients in connecting state
284 <initializing>0</initializing> -- Number of clients initializing
285 <searching>0</searching> -- ... searching
286 <presenting>0</presenting> -- ... presenting
287 <idle>1</idle> -- ... idle (not doing anything)
288 <failed>0</failed> -- ... Connection failed
289 <error>0</error> -- ... Error was produced somewhere
295 <refsect2 id="command-show">
298 Shows records retrieved. Parameters:
312 <para>First record to show - 0-indexed.</para>
320 Number of records to show If omitted, 20 is used.
329 If block is set to 1, the command will hang until there are records
330 ready to display. Use this to show first records rapidly without
331 requiring rapid polling.
340 Specifies sort criteria. The argument is a comma-separated list
341 (no whitespace allowed) of sort fields, with the highest-priority
342 field first. A sort field may be followed by a colon followed by
343 the number '0' or '1', indicating whether results should be sorted in
344 increasing or decreasing order according to that field. 0==Decreasing is
346 Sort field names can be any field name designated as a sort field
347 in the pazpar2.cfg file, or the special name 'relevance'.
357 search.pz2?session=2044502273&command=show&start=0&num=2&sort=title:1
363 <activeclients>3</activeclients> -- How many clients are still working
364 <merged>6</merged> -- Number of merged records
365 <total>7</total> -- Total of all hitcounts
366 <start>0</start> -- The start number you requested
367 <num>2</num> -- Number of records retrieved
369 <md-title>How to program a computer, by Jack Collins</md-title>
370 <count>2</count> -- Number of merged records
371 <recid>6</recid> -- Record ID for this record
375 Computer processing of dynamic images from an Anger scintillation camera :
376 the proceedings of a workshop /
385 <refsect2 id="command-record">
386 <title>record</title>
388 Retrieves a detailed record. Unlike the
389 <link linkend="command-show">show</link> command, this command
390 returns metadata records before merging takes place. Parameters:
406 record ID as provided by the
407 <link linkend="command-show">show</link> command.
416 This optional parameter is an integer which, when given, makes
417 Pazpar2 return the raw record for a target. The raw record
418 from first target is numbered 0, second numbered 1, etc.
419 When a raw record is returned Pazpar2 will XSLT transform the
420 record but an XML version is returned. All ISO2709 records are
421 returned as MARCXML. OPAC records are returned as YAZ'
422 OPAC with an MARCXML sibling.
425 When offset is not given the Pazpar2 metadata for the record
426 is returned and with metadata for each targets' data specified
427 in a 'location' list.
436 This optional parameter is the record syntax used for raw
437 transfer (i.e. when offset is specified). If syntax is not given,
438 but offset is used, the value of pz:requestsyntax is used.
447 This optional parameter is the element set name used to retrieval
448 of a raw record (i.e. when offset is specified).
449 If esn is not given, but offset is used, the value of pz:elements
459 This optional parameter enables "binary" response for retrieval
460 of a raw record (i.e. when offset is specified). For binary
461 responses the record is <emphasis>not</emphasis> converted to
462 XML and the HTTP content type is application/octet-stream.
472 search.pz2?session=605047297&command=record&id=3
480 The Puget Sound Region : a portfolio of thematic computer maps /
482 <md-date>1974</md-date>
483 <md-author>Mairs, John W.</md-author>
484 <md-subject>Cartography</md-subject>
490 <refsect2 id="command-termlist">
491 <title>termlist</title>
493 Retrieves term list(s). Parameters:
508 comma-separated list of termlist names (default "subject")
516 maximum number of entries to return - default is 15.
525 search.pz2?session=2044502273&command=termlist&name=author,subject
530 <activeclients>3</activeclients>
533 <name>Donald Knuth</name>
534 <frequency>10</frequency>
537 <name>Robert Pirsig</name>
538 <frequency>2</frequency>
541 <list name="subject">
543 <name>Computer programming</name>
544 <frequency>10</frequency>
552 For the special termlist name "xtargets", results
553 are returned about the targets which have returned the most hits.
554 The 'term' subtree has additional elements,
555 specifically a state and diagnostic field (in the example below, a
556 target ID is returned in place of 'name'.
557 This may or may not change later.
563 <name>library2.mcmaster.ca</name>
564 <frequency>11734</frequency> -- Number of hits
565 <state>Client_Idle</state> -- See the description of 'bytarget' below
566 <diagnostic>0</diagnostic> -- Z39.50 diagnostic codes
573 <refsect2 id="command-bytarget">
574 <title>bytarget</title>
576 Returns information about the status of each active client. Parameters:
592 search.pz2?session=605047297&command=bytarget&id=3
601 <id>z3950.loc.gov/voyager/</id>
603 <diagnostic>0</diagnostic>
604 <records>65</records>
605 <state>Client_Presenting</state>
607 <!-- ... more target nodes below as necessary -->
611 The following client states are defined: Client_Connecting,
612 Client_Connected, Client_Idle, Client_Initializing, Client_Searching,
613 Client_Searching, Client_Presenting, Client_Error, Client_Failed,
614 Client_Disconnected, Client_Stopped, Client_Continue.
620 <title>SEE ALSO</title>
624 <refentrytitle>pazpar2</refentrytitle>
625 <manvolnum>8</manvolnum>
629 Pazpar2 Configuration:
631 <refentrytitle>pazpar2_conf</refentrytitle>
632 <manvolnum>5</manvolnum>
638 <!-- Keep this comment at the end of the file