|
NAMEyaz-client - Z39.50/SRU client for implementorsSYNOPSISyaz-client [-a apdulog] [-b berdump] [-c cclfile] [-d dump] [-f cmdfile] [-k size] [-m marclog] [-p proxy-addr] [-q cqlfile] [-t dispcharset] [-u auth] [-v loglevel] [-V] [-x] [server-addr] DESCRIPTIONyaz-client is a Z39.50[1]/SRU[2] client (origin) with a simple command line interface that allows you to test behavior and performance of Z39.50 targets and SRU servers.From YAZ version 4.1.0 yaz-client may also operate as a Solr[3] Web Service client. If the server-addr is specified, the client creates a connection to the Z39.50/SRU target at the address given. When yaz-client is started it tries to read commands from one of the following files: •Command file if it is given by option -f.
•.yazclientrc in current working directory.
•.yazclientrc in the user's home directory. The
value of the $HOME environment variable is used to determine the home
directory. Normally, $HOME is only set on POSIX systems such as Linux,
FreeBSD, Solaris.
OPTIONS-a filenameIf specified, logging of protocol packages will be
appended to the file given. If filename is specified as -, the output
is written to stdout.
-b filename If specified, YAZ will dump BER data in readable notation
to the file specified. If filename is specified as - the output is
written to stdout.
-c filename If specified, CCL configuration will be read from the
file given.
-d dump If specified, YAZ will dump BER data for all PDUs sent
and received to individual files, named dump.DDD.raw, where DDD is 001,
002, 003, ...
-f cmdfile Reads commands from cmdfile. When this option is
used, YAZ client does not read .yazclientrc from current directory or home
directory.
-k size Sets preferred messages and maximum record size for
Initialize Request in kilobytes. Default value is 65536 (64 MB).
-m filename If specified, retrieved records will be appended to the
file given.
-p proxy-addr If specified, the client will use the proxy at the
address given. YAZ client will connect to a proxy on the address and port
given. The actual target will be specified as part of the InitRequest to
inform the proxy about the actual target.
-q filename If specified, CQL configuration will be read from the
file given.
-t displaycharset If displaycharset is given, it specifies name of the
character set of the output (on the terminal on which YAZ client is
running).
-u auth If specified, the auth string will be used for
authentication.
-v level Sets the LOG level to level. Level is a sequence
of tokens separated by comma. Each token is a integer or a named LOG item -
one of fatal, debug, warn, log, malloc, all, none.
-V Prints YAZ version.
-x Makes the YAZ client print hex dumps of packages sent and
received on standard output.
COMMANDSThe YAZ client accepts the following commands.open zurl Opens a connection to a server. The syntax for
zurl is the same as described above for connecting from the command
line.
Syntax: [(tcp|ssl|unix|http)':']host [:port][/base] quit Quits YAZ client
find query Sends a Search Request using the query given. By
default the query is assumed to be PQF. See command querytype for more
information.
delete setname Deletes result set with name setname on the
server.
base base1 base2 ... Sets the name(s) of the database(s) to search. One or
more databases may be specified, separated by blanks. This command overrides
the database given in zurl.
show [start[+number [+resultset]]] Fetches records by sending a Present Request from the
start position given by start and a number of records given by
number, from the result set resultset. If start is not
given, then the client will fetch from the position of the last retrieved
record plus 1. If number is not given, then one record will be fetched
at a time. If resultset is not given, the most recently retrieved
result set is used.
scan term Scans database index for a term. The syntax resembles the
syntax for find. If you want to scan for the word water you could write
scan water but if you want to scan only in, say the title field, you would write scan @attr 1=4 water setscan set term Scans database index for a term within a result set. This
is similar to the scan command but has a result set as its first
argument.
scanpos pos Sets preferred position for scan. This value is used in
the next scan. By default, position is 1.
scansize size Sets number of entries to be returned by scan. Default
number of entries is 20.
scanstep step Set step-size for scan. This value is used in the next
scan sent to the target. By default step-size is 0.
sort sortspecs Sorts a result set. The sort command takes a sequence of
space-separated sort specifications, with each sort specification consisting
of two space-separated words (so that the whole specification list is made up
of an even number of words). The first word of each specification holds a
field (sort criterion) and the second holds flags. If the sort criterion
includes = it is assumed that the SortKey is of type sortAttributes using
Bib-1: in this case the integer before = is the attribute type and the integer
following = is the attribute value. If no = character is in the criterion, it
is treated as a sortfield of type InternationalString. The flags word of each
sort specification must consist of s for case sensitive or i for case
insensitive, and < for ascending order or > for descending order.
sort+ Same as sort but stores the sorted result set in a new
result set.
authentication openauth Sets up an authentication string if a server requires
authentication (v2 OpenStyle). The authentication string is first sent to the
server when the open command is issued and the Z39.50 Initialize Request is
sent, so this command must be used before open in order to be effective. A
common convention for the authopen string is that the username - and
password is separated by a slash, e.g. myusername/mysecret.
sru method version Selects Web Service method and version. Must be one of
post, get, soap (default) or solr. Version should be either 1.1, 1.2 or 2.0
for SRU. Other versions are allowed - for testing purposes (version
negotiation with SRU server). The version is currently not used for Solr Web
Services
list_all This command displays status and values for many
settings.
lslb n Sets the limit for when no records should be returned
together with the search result. See the Z39.50 standard on set
bounds[4] for more details.
ssub n Sets the limit for when all records should be returned
with the search result. See the Z39.50 standard on set bounds[4] for
more details.
mspn n Sets the number of records that should be returned if the
number of records in the result set is between the values of lslb and ssub.
See the Z39.50 standard on set bounds[4] for more details.
status Displays the values of lslb, ssub and mspn.
setname Switches named result sets on and off. Default is
on.
cancel Sends a Trigger Resource Control Request to the
target.
facets spec Specifies requested facets to be used in search. The
notation is specified in ???.
format oid Sets the preferred transfer syntax for retrieved records.
yaz-client supports all the record syntaxes that currently are registered. See
Z39.50 Record Syntax Identifiers[5] for more details. Commonly used
records syntaxes include usmarc, sutrs and xml.
elements e Sets the element set name for the records. Many targets
support element sets B (for brief) and F (for full).
close Sends a Z39.50 Close APDU and closes connection with the
peer
querytype type Sets the query type as used by command find. The
following is supported: prefix for Prefix Query Notation (Type-1 Query); ccl
for CCL search (Type-2 Query), cql for CQL (Type-104 search with CQL OID),
ccl2rpn for CCL to RPN conversion (Type-1 Query), cql2rpn for CQL to RPN
conversion (Type-1 Query).
attributeset set Sets attribute set OID for prefix queries (RPN,
Type-1).
refid id Sets reference ID for Z39.50 Request(s).
itemorder type no Sends an Item Order Request using the ILL External.
type is either 1 or 2 which corresponds to ILL-Profile 1 and 2
respectively. The no is the Result Set position of the record to be
ordered.
update action recid doc Sends Item Update Request. The action argument
must be the action type: one of insert, replace, delete and update. The second
argument, recid, is the record identifier (any string). Third argument
which is optional is the record document for the request. If doc is preceded
with "<", then the following characters are treated as a filename
with the records to be updated. Otherwise doc is treated as a document itself.
The doc may also be quoted in double quotes. If doc is omitted, the last
received record (as part of present response or piggybacked search response)
is used for the update.
source filename Executes list of commands from file filename, just
like 'source' on most UNIX shells. A single dot (.) can be used as an
alternative.
! args Executes command args in subshell using the system
call.
push_command command The push_command takes another command as its argument.
That command is then added to the history information (so you can retrieve it
later). The command itself is not executed. This command only works if you
have GNU readline/history enabled.
set_apdufile filename Sets that APDU should be logged to file filename.
Another way to achieve APDU log is by using command-line option -a.
set_auto_reconnect flag Specifies whether YAZ client automatically reconnects if
the target closes connection (Z39.50 only).
flag must be either on or off. set_auto_wait flag Specifies whether YAZ client should wait for response
protocol packages after a request. By default YAZ client waits (on) for
response packages immediately after a command (find, show) has been issued. If
off is used, YAZ client does not attempt to receive packages automatically.
These will have to be manually received when command wait_response is used.
flag must be either on or off. set_marcdump filename Specifies that all retrieved records should be appended
to file filename. This command does the same thing as option -m.
schema schemaid Specifies schema for retrieval. Schema may be specified
as an OID for Z39.50. For SRU, schema is a simple string URI.
charset negotiationcharset [displaycharset] [[marccharset]] Specifies character set (encoding) for Z39.50 negotiation
/ SRU encoding and/or character set for output (terminal).
negotiationcharset is the name of the character set to be negotiated by the server. The special name - for negotiationcharset specifies no character set to be negotiated. If displaycharset is given, it specifies name of the character set of the output (on the terminal on which YAZ client is running). To disable conversion of characters to the output encoding, the special name - (dash) can be used. If the special name auto is given, YAZ client will convert strings to the encoding of the terminal as returned by nl_langinfo call. If marccharset is given, it specifies name of the character set of retrieved MARC records from server. See also marccharset command. Note Since character set negotiation takes effect in the Z39.50 Initialize Request you should issue this command before command open is used. Note MARC records are not covered by Z39.50 character set negotiation, so that's why there is a separate character that must be known in order to do meaningful conversion(s). negcharset charset Specifies character set for negotiation (Z39.50). The
argument is the same as second argument for command charset.
displaycharset charset Specifies character set for output (display). The
argument is the same as second argument for command charset.
marccharset charset Specifies character set for retrieved MARC records so
that YAZ client can display them in a character suitable for your display. See
charset command. If auto is given, YAZ will assume that MARC21/USMARC is using
MARC8/UTF8 and ISO-8859-1 for all other MARC variants. The charset argument is
the same as third argument for command charset.
querycharset charset Specifies character set for query terms for Z39.50 RPN
queries and Z39.50 Scan Requests (termListAndStartPoint). This is a pure
client-side conversion which converts from displayCharset to
queryCharset.
set_cclfile filename Specifies that CCL fields should be read from file file
filename. This command does the same thing as option -c.
set_cqlfile filename Specifies that CQL fields should be read from file file
filename. This command does the same thing as option -q.
register_oid name class OID This command allows you to register your own object
identifier - so that instead of entering a long dot-notation you can use a
short name instead. The name is your name for the OID, class is
the class, and OID is the raw OID in dot notation. Class is one of:
appctx, absyn, attet, transyn, diagset, recsyn, resform, accform, extserv,
userinfo, elemspec, varset, schema, tagset, general. If you're in doubt use
the general class.
register_tab command string This command registers a TAB completion string for the
command given.
sleep seconds This command makes YAZ client sleep (be idle) for the
number of seconds given.
wait_response [ number] This command makes YAZ client wait for a number of
response packages from target. If number is omitted, 1 is assumed.
This command is rarely used and is only useful if command set_auto_wait is set to off. xmles OID doc Sends XML Extended Services request using the OID and doc
given.
zversion ver This command sets Z39.50 version for negotiation. Should
be used before open. By default 3 (version 3) is used.
options op1 op2.. This command sets Z39.50 options for negotiation. Should
be used before open.
The following options are supported: search, present, delSet, resourceReport, triggerResourceCtrl, resourceCtrl, accessCtrl, scan, sort, extendedServices, level_1Segmentation, level_2Segmentation, concurrentOperations, namedResultSets, encapsulation, resultCount, negotiationModel, duplicationDetection, queryType104, pQESCorrection, stringSchema. EXAMPLEThe simplest example of a Prefix Query would be something likef knuth or f "donald knuth" In those queries, no attributes were specified. This leaves it up to the server what fields to search but most servers will search in all fields. Some servers do not support this feature though, and require that some attributes are defined. To add one attribute you could do: f @attr 1=4 computer where we search in the title field, since the use(1) is title(4). If we want to search in the author field and in the title field, and in the title field using right truncation it could look something like this: f @and @attr 1=1003 knuth @attr 1=4 @attr 5=1 computer Finally using a mix of Bib-1 and GILS attributes could look something like this: f @attrset Bib-1 @and @attr GILS 1=2008 Washington @attr 1=21 weather FILESyaz-<version>/client/client.c$HOME/.yazclientrc $HOME/.yazclient.history SEE ALSOyaz(7) bib1-attr(7)AUTHORSIndex DataNOTES
https://www.loc.gov/z3950/agency/
https://www.loc.gov/standards/sru/
https://lucene.apache.org/solr/
http://www.loc.gov/z3950/agency/markup/04.html#3.2.2.1.6
http://www.loc.gov/z3950/agency/defns/oids.html#5
Visit the GSP FreeBSD Man Page Interface. |