X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=doc%2Fpazpar2_protocol.xml;h=968a7993feea1fade53d4544afa5bc4c692faf08;hb=64dccf5757a22cedd3c21ca834e3e02f39dd0504;hp=db67d94da1bd91bf9dd7bddcd1857377cf9b65d0;hpb=cf880fac8c1c2805136cb463dc3d1b7d05826741;p=pazpar2-moved-to-github.git diff --git a/doc/pazpar2_protocol.xml b/doc/pazpar2_protocol.xml index db67d94..968a799 100644 --- a/doc/pazpar2_protocol.xml +++ b/doc/pazpar2_protocol.xml @@ -1,5 +1,6 @@ - + %local; @@ -8,15 +9,16 @@ %idcommon; ]> - Pazpar2 &version; + Index Data Pazpar2 protocol 7 + Conventions and miscellaneous @@ -24,7 +26,8 @@ The webservice protocol of Pazpar2 - DESCRIPTION + + DESCRIPTION Webservice requests are any that refer to filename "search.pz2". Arguments are GET-style parameters. Argument 'command' is always required and specifies @@ -32,16 +35,39 @@ request is forwarded to the HTTP server specified in the configuration using the proxy setting. This way, a regular webserver can host the user interface (itself dynamic - or static HTML), and AJAX-style calls can be used from JS (or any other client-based - scripting environment) to interact with the search logic in pazpar2. + or static HTML), and Ajax-style calls can be used from JS (or any other + client-based scripting environment) to interact with the search logic + in Pazpar2. Each command is described in sub sections to follow. - init + + info + + Returns version and statistics about the Pazpar2 instance. + + + + init Initializes a session. - Returns session ID to be used in subsequent requests. + Returns session ID to be used in subsequent requests. If + a server ID is given in the Pazpar2 server section, then + that is included in the session ID as suffix after a period (.). + + + If the init command is performed as a HTTP GET request, service + and settings from local files are used. The service parameter + may chose a particular local service. + + + If the init command is performed as a HTTP POST request and + the content-type is text/xml, then the content is XML parsed + and treated as service for the session. The root element should be + service. Refer to descripton of the + service format. + The posting of a service appeared in Pazpar2 version 1.2.1. Example: @@ -59,13 +85,37 @@ ]]> - The init command may take a number of setting parameters, similar to - the 'settings' command described below. These settings are immediately - applied to the new session. + The init command may take a number of setting parameters, similar to + the 'settings' command described below. These settings are immediately + applied to the new session. Other parameters for init are: + + + clear + + + If this is defined and the value is non-zero, the session will + not use the predefined databases in the configuration; only those + specified in the settings parameters (per session databases). + + + + + + service + + + If this is defined it specifies a service ID. Makes the session use + the service with this ID. If this is setting is omitted, the + session will use the unnamed service in the Pazpar2 configuration. + + + + - - ping + + + ping Keeps a session alive. An idle session will time out after one minute. The ping command can be used to keep the session alive absent other @@ -88,35 +138,47 @@ - settings - - The settings command applies session-specific settings to one or more - databases. A typical function of this is to enable access to - restricted resources for registered users, or to set a user- or - library-specific username/password to use against a target. Each - setting parameter has the form name[target]=value, where name is the - name of the setting (e.g. pz:authentication), target is a target ID, - or possibly a wildcard, and value is the desired value for the - setting. - + settings + + The settings command applies session-specific settings to one or more + databases. A typical function of this is to enable access to + restricted resources for registered users, or to set a user- or + library-specific username/password to use against a target. + + + Each setting parameter has the form name[target]=value, where name is the + name of the setting (e.g. pz:authentication), target is a target ID, + or possibly a wildcard, and value is the desired value for the + setting. + - - Because the settings command manipulates potentially sensitive - information, it is possible to configure pazpar2 to only allow access - to this command from a trusted site -- usually from server-side - scripting, which in turn is responsible for authenticating the user, - and possibly determining which resources he has access to, etc. - + + Because the settings command manipulates potentially sensitive + information, it is possible to configure Pazpar2 to only allow access + to this command from a trusted site -- usually from server-side + scripting, which in turn is responsible for authenticating the user, + and possibly determining which resources he has access to, etc. + + - Note: As a shortcut, it is also possible to override settings directly in - the init command. + As a shortcut, it is also possible to override settings directly in + the init command. + - - Example: - + If the settings command is performed as HTTP POST and the content-type + is text/xml, then the content is XML parsed and treated as settings - + with a format identical to local + settings files. + The posting of settings appeared in Pazpar version 1.2.1. + + + + Example: + Response: OK ]]> - + - search + + search Launches a search, parameters: @@ -148,6 +211,137 @@ + + filter + + + Limits the search to a given set of targets specified by the + filter. The filter consists of a comma separated list of + setting+operator+args + pairs. The setting is a Pazpar2 setting + (such as pz:id). + The operator is either + = (string match) + or ~ (substring match). + The args is a list of values separated + by | (or , one of the values). + The idea is that only targets with a setting matching one of + the values given will be included in the search. + + + + + limit + + + Narrows the search by one or more fields (typically facets). + The limit is sequence of one or more + name=args pairs separated + by comma. The args is a list of values + separated by vertical bar (|). + The meaning of | is alternative, ie OR . + A value that contains a comma (,), + a vertical bar (|) or + backslash itself must be preceded by backslash (\). + The pz:limitmap configuration + item defines how the searches are mapped to a database. + + + + + startrecs + + + Specifies the first record to retrieve from each target. + The first record in a result set for a target is numbered 0, next + record is numbered 1. By default startrecs is 0. + + + + + maxrecs + + + Specifies the maximum number of records to retrieve from each + target. The default value is 100. This setting has same meaning + as per-target setting pz:maxrecs . If pz:maxrecs is set, it takes + precedence over argument maxrecs. + + + + + sort + + + Specifies sort criteria. The argument is a comma-separated list + (no whitespace allowed) of sort fields, with the highest-priority + field first. A sort field may be followed by a colon followed by + the number '0' (decreasing) or '1' (increasing). Default + sort order is decreasing. + Sort field names can be any field name designated as a sort field + in the pazpar2.cfg file, or the special names 'relevance', + 'retrieval' and 'position'. + + + Sort type 'position' sorts by position/offset for each database. + Sort type 'retrieval' sorts by position of retrieval (first record + retrieved is 1, second record is 2, etc.). + + + If not specified here or as + sort-default" + in pazpar2.cfg, Pazpar2 will default to the built-in + 'relevance' ranking. + + + Having sort criteria at search is important for targets that + supports native sorting in order to get best results. Pazpar2 + will trigger a new search if search criteria changes from Pazpar2 + to target-based sorting or visa-versa. + + + + + + mergekey + + + Sets mergekey for this search and rest of session, or until + another mergekey is given for show/search. The mergekey value is a + comma separated list with one or more names as they appear + in the service description equivalent to + mergekey="optional" inside a metadata element. + If the empty string is given for mergekey it is disabled + and rest of session will use the default mergekey from service + or stylesheet. + + + This facility, "dynamic mergekey", appeared in Pazpar2 version + 1.6.31. + + + + + + rank + + + Sets rank method this search and rest of session, or until + another rank is given for show/search. The rank value is a + comma separated list of pairs field=value pairs. The + format is the same as + rank for a metadata element. + If the empty string is given for rank it is disabled + and rest of session will use the default rank from metadata or + stylesheet. + + + This facility, "dynamic ranking", appeared in Pazpar2 version + 1.6.31. + + + + @@ -165,7 +359,7 @@ search.pz2?session=2044502273&command=search&query=computer+science ]]> - + stat @@ -207,7 +401,7 @@ search.pz2?session=2044502273&command=stat ]]> - + show @@ -218,17 +412,17 @@ search.pz2?session=2044502273&command=stat Session ID - + - + start First record to show - 0-indexed. - + num @@ -242,26 +436,109 @@ search.pz2?session=2044502273&command=stat block - If block is set to 1, the command will hang until there are records ready - to display. Use this to show first records rapidly without + If block is set to 1, the command will hang until there are records + ready to display. Use this to show first records rapidly without requiring rapid polling. + + If block is set to preferred, the command will + wait until records have been received from all databases with preferred + setting + + + + + + sort + + + Specifies sort criteria. The argument is a comma-separated list + (no whitespace allowed) of sort fields, with the highest-priority + field first. A sort field may be followed by a colon followed by + the number '0' (decreasing) or '1' (increasing). Default + sort order is decreasing. + Sort field names can be any field name designated as a sort field + in the pazpar2.cfg file, or the special names 'relevance', + 'retrieval' and 'position'. + + + Sort type 'position' sorts by position/offset for each database. + Sort type 'retrieval' sorts by position of retrieval (first record + retrieved is 1, second record is 2, etc.). + + + If not specified here or as + sort-default" + in pazpar2.cfg, pazpar2 will default to the built-in + 'relevance' ranking. + + + Having sort criteria at search is important for targets that + supports native sorting in order to get best results. pazpar2 + will trigger a new search if search criteria changes from pazpar2 + to target-based sorting. + + + For targets where If pz:sortmap + is defined, a sort operation will be executed (possibly including + extending the search). + + + + + + mergekey + + + Sets mergekey for this show and rest of session, or until + another mergekey is given for show/search. The mergekey value is a + comma separated list with one or more names as they appear + in the service description equivalent to + mergekey="optional" inside a metadata element. + If the empty string is given for mergekey it is disabled + and rest of session will use the default mergekey from service + or stylesheet. + + + This facility, "dynamic mergekey", appeared in Pazpar2 version + 1.6.31. + + + + + + rank + + + Sets rank method this show and rest of session, or until + another rank is given for show/search. The rank value is a + comma separated list of pairs field=value pairs. The + format is the same as + rank for a metadata element. + If the empty string is given for rank it is disabled + and rest of session will use the default rank from metadata or + stylesheet. + + + This facility, "dynamic ranking", appeared in Pazpar2 version + 1.6.31. + - sort - - - Specifies sort criteria. The argument is a comma-separated list - (no whitespace allowed) of sort fields, with the highest-priority - field first. A sort field may be followed by a colon followed by - the number '0' or '1', indicating whether results should be sorted in - increasing or decreasing order according to that field. 0==Decreasing is - the default. - - - + snippets + + + If specified and set to 1 data will include snippets marked + with <match> tags. Otherwise snippets will not be included. + + + This facility, "snippets", appeared in Pazpar2 version + 1.6.32. + + + @@ -281,7 +558,7 @@ search.pz2?session=2044502273&command=show&start=0&num=2&sort=title:1 2 -- Number of records retrieved How to program a computer, by Jack Collins - 2 -- Number of merged records + 2 -- Number of merged records 6 -- Record ID for this record @@ -299,7 +576,9 @@ search.pz2?session=2044502273&command=show&start=0&num=2&sort=title:1 record - Retrieves a detailed record. Parameters: + Retrieves a detailed record. Unlike the + show command, this command + returns metadata records before merging takes place. Parameters: @@ -307,7 +586,7 @@ search.pz2?session=2044502273&command=show&start=0&num=2&sort=title:1 Session ID - + @@ -320,16 +599,121 @@ search.pz2?session=2044502273&command=show&start=0&num=2&sort=title:1 + + + offset + + + This optional parameter is an integer which, when given, makes + Pazpar2 return the original record for a specific target. + The record set from first target is numbered 0, + second record set is numbered 1, etc. + The nativesyntax setting, as usual, is used to determine how to + create XML from the original record - unless parameter + binary is given in which the record is + fetched as "raw" from ZOOM C (raw, original record). + + + When offset/checksum is not given, the Pazpar2 metadata for the record + is returned and with metadata for each targets' data specified + in a 'location' list. + + + + + + checksum + + + This optional parameter is a string which, when given, makes + Pazpar2 return the original record for a specific target. The + checksum is returned as attribtue 'checksum' in element + 'location' for show command and record command (when checksum + and offset is NOT given). + The nativesyntax setting, as usual, is used to determine how to + create XML from the original record - unless parameter + binary is given in which the record is + fetched as "raw" from ZOOM C (raw, original record). + + + When offset/checksum is not given, the Pazpar2 metadata for the record + is returned and with metadata for each targets' data specified + in a 'location' list. + + + + + + + nativesyntax + + + This optional parameter can be used to override pz:nativesyntax + as given for the target. This allow an alternative nativesyntax + to be used for original records (see parameteroffset above). + + + + + + syntax + + + This optional parameter is the record syntax used for raw + transfer (i.e. when offset is specified). If syntax is not given, + but offset is used, the value of pz:requestsyntax is used. + + + + + + esn + + + This optional parameter is the element set name used to retrieval + of a raw record (i.e. when offset is specified). + If esn is not given, but offset is used, the value of pz:elements + is used. + + + + + + binary + + + This optional parameter enables "binary" response for retrieval + of a original record (i.e. when offset is specified). For binary + response the record by default is fetched from ZOOM C using + the "raw" option or by parameter nativesyntax if given. + + + + + + snippets + + + If specified and set to 1 data will include snippets marked + with <match> tags. Otherwise snippets will not be included. + + + This facility, "snippets", appeared in Pazpar2 version + 1.6.32. + + + + - + Example: Example output: - + @@ -339,26 +723,56 @@ search.pz2?session=605047297&command=record&id=3 Mairs, John W. Cartography - + + stop + + Makes Pazpar2 stop further search & retrieval for busy databases. + + + termlist Retrieves term list(s). Parameters: -session -name -- comma-separated list of termlist names (default "subject") - + + + session + + + Session Id. + + + + + name + + + comma-separated list of termlist names. If omitted, + all termlists are returned. + + + + + num + + + maximum number of entries to return - default is 15. + + + + Example: -Output: + Output: 3 @@ -380,7 +794,7 @@ Output: ]]> - + For the special termlist name "xtargets", results @@ -400,7 +814,7 @@ Output: 0 -- Z39.50 diagnostic codes ]]> - + @@ -414,20 +828,20 @@ Output: session - Session Id. + Session Id. - + Example: Example output: - + OK @@ -442,27 +856,55 @@ search.pz2?session=605047297&command=record&id=3 ]]> - The following client states are defined: Client_Connecting, - Client_Connected, Client_Idle, Client_Initializing, Client_Searching, - Client_Searching, Client_Presenting, Client_Error, Client_Failed, - Client_Disconnected, Client_Stopped. + The following client states are defined: Client_Connecting, + Client_Connected, Client_Idle, Client_Initializing, Client_Searching, + Client_Searching, Client_Presenting, Client_Error, Client_Failed, + Client_Disconnected, Client_Stopped, Client_Continue. + + service + + Returns service definition (XML). Parameters: + + + session + + + Session ID + + + + + + + The service command appeared in Pazpar2 version 1.6.32 + + + + + SEE ALSO + + Pazpar2: + + pazpar2 + 8 + + + + Pazpar2 Configuration: + + pazpar2_conf + 5 + +