X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=doc%2Ftools.xml;h=f72288765ff1a7bc92ab707832b176070cd4a9ba;hp=e490b1c071b9b83234a219511e2a6530cf4ef407;hb=e050e2bc6f5e50c42f7b04cd002d47cd5e5ad6cf;hpb=6a8bbb0642cc2256976e0f2e0203c4b61bd7f3ad
diff --git a/doc/tools.xml b/doc/tools.xml
index e490b1c..f722887 100644
--- a/doc/tools.xml
+++ b/doc/tools.xml
@@ -686,8 +686,8 @@
s=ag
Tokens that appears as phrases (with blank in them) gets
- structure phrase attached. Tokens that appers as words
- gets structure phrase attached. Phrases and words are
+ structure phrase attached (4=1). Tokens that appear to be words
+ gets structure word attached (4=2). Phrases and words are
ANDed. This is a variant of s=al and s=pw, with the main
difference that words are not split (with operator AND)
but instead kept in one RPN token. This facility appeared
@@ -867,6 +867,11 @@
?
+ mask
+ Masking character. Requires YAZ 4.2.58 or later
+ #
+
+ fieldSpecifies how multiple fields are to be
combined. There are two modes: or:
@@ -1092,6 +1097,7 @@ struct cql_node *cql_parser_result(CQL_parser cp);
#define CQL_NODE_ST 1
#define CQL_NODE_BOOL 2
+#define CQL_NODE_SORT 3
struct cql_node {
int which;
union {
@@ -1109,10 +1115,17 @@ struct cql_node {
struct cql_node *right;
struct cql_node *modifiers;
} boolean;
+ struct {
+ char *index;
+ struct cql_node *next;
+ struct cql_node *modifiers;
+ struct cql_node *search;
+ } sort;
} u;
};
- There are two node types: search term (ST) and boolean (BOOL).
+ There are three node types: search term (ST), boolean (BOOL)
+ and sortby (SORT).
A modifier is treated as a search term too.
@@ -1157,8 +1170,8 @@ struct cql_node {
- The boolean node represents both and,
- or, not as well as
+ The boolean node represents and,
+ or, not +
proximity.
@@ -1175,6 +1188,10 @@ struct cql_node {
+
+ The sort node represents both the SORTBY clause.
+
+
CQL to PQF conversion
@@ -1557,6 +1574,27 @@ void cql_to_xml_stdio(struct cql_node *cn, FILE *f);
a file.
+
+ PQF to CQL conversion
+
+ Conversion from PQF to CQL is offered by the two functions shown
+ below. The former uses a generic stream for result. The latter
+ puts result in a WRBUF (string container).
+
+#include <yaz/rpn2cql.h>
+
+int cql_transform_rpn2cql_stream(cql_transform_t ct,
+ void (*pr)(const char *buf, void *client_data),
+ void *client_data,
+ Z_RPNQuery *q);
+
+int cql_transform_rpn2cql_wrbuf(cql_transform_t ct,
+ WRBUF w,
+ Z_RPNQuery *q);
+
+ The configuration is the same as used in CQL to PQF conversions.
+
+ Object Identifiers
@@ -1968,6 +2006,7 @@ void cql_to_xml_stdio(struct cql_node *cn, FILE *f);
#define YAZ_MARC_XCHANGE 5
#define YAZ_MARC_CHECK 6
#define YAZ_MARC_TURBOMARC 7
+ #define YAZ_MARC_JSON 8
/* supply iconv handle for character set conversion .. */
void yaz_marc_iconv(yaz_marc_t mt, yaz_iconv_t cd);
@@ -2061,6 +2100,15 @@ void cql_to_xml_stdio(struct cql_node *cn, FILE *f);
+
+ YAZ_MARC_JSON
+
+
+ MARC-in_JSON format.
+
+
+
+
@@ -2291,8 +2339,9 @@ void cql_to_xml_stdio(struct cql_node *cn, FILE *f);
Format of input. Supported values are
- marc (for ISO2709); and xml
- for MARCXML/MarcXchange.
+ marc (for ISO2709), xml
+ (MARCXML/MarcXchange) and json
+ (MARC-in_JSON).
@@ -2301,10 +2350,12 @@ void cql_to_xml_stdio(struct cql_node *cn, FILE *f);
Format of output. Supported values are
- line (MARC line format);
- marcxml (for MARCXML),
- marc (ISO2709),
- marcxhcange (for MarcXchange).
+ line (MARC line format);
+ marcxml (for MARCXML),
+ marc (ISO2709),
+ marcxhcange (for MarcXchange),
+ or json
+ (MARC-in_JSON ).
@@ -2412,6 +2463,56 @@ void cql_to_xml_stdio(struct cql_node *cn, FILE *f);
+
+
+ MARCXML backend
+
+ SRW/SRU and Solr backends returns records in XML.
+ If they return MARCXML or MarcXchange, the retrieval module
+ can convert those into ISO2709 formats, most commonly USMARC
+ (AKA MARC21).
+ In this example, the backend returns MARCXML for schema="marcxml".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+]]>
+
+
+ This means that our frontend supports:
+
+
+
+ MARC21 records (any element set name) in MARC-8 encoding.
+
+
+
+
+ MARCXML records for element-set=marcxml
+
+
+
+
+ Dublin core records for element-set=dc.
+
+
+
+
+
+
API
@@ -2423,6 +2524,80 @@ void cql_to_xml_stdio(struct cql_node *cn, FILE *f);
+ Sorting
+
+ This chapter describes sorting and how it is supported in YAZ.
+ Sorting applies to a result-set.
+ The
+ Z39.50 sorting facility
+
+ takes one or more input result-sets
+ and one result-set as output. The most simple case is that
+ the input-set is the same as the output-set.
+
+
+ Z39.50 sorting has a separate APDU (service) that is, thus, performed
+ following a search (two phases).
+
+
+ In SRU/Solr, however, the model is different. Here, sorting is specified
+ during the the search operation. Note, however, that SRU might
+ perform sort as separate search, by referring to an existing result-set
+ in the query (result-set reference).
+
+ Using the Z39.50 sort service
+
+ yaz-client and the ZOOM API supports the Z39.50 sort facility. In any
+ case the sort sequence or sort critiera is using a string notation.
+ This notation is a one-line notation suitable for being manually
+ entered or generated and allows for easy logging (one liner).
+ For the ZOOM API, the sort is specified in the call to ZOOM_query_sortby
+ function. For yaz-client the sort is performed and specified using
+ the sort and sort+ commands. For description of the sort criteria notation
+ refer to the sort command in the
+ yaz-client manual.
+
+
+ The ZOOM API might choose one of several sort strategies for
+ sorting. Refer to .
+
+
+ Type-7 sort
+
+ Type-7 sort is an extension to the Bib-1 based RPN query where the
+ sort specification is embedded as an Attribute-Plus-Term.
+
+
+ The objectives for introducing Type-7 sorting is that it allows
+ a client to perform sorting even if it does not implement/support
+ Z39.50 sort. Virtually all Z39.50 client software supports
+ RPN queries. It also may improve performance because the sort
+ critieria is specified along with the search query.
+
+
+ The sort is triggered by the presence of type 7 and the value of type 7
+ specifies the
+
+ sortRelation
+
+ The value for type 7 is 1 for ascending and 2 for descending.
+ For the
+
+ sortElement
+
+ only the generic part is handled. If generic sortKey is of type
+ sortField, then attribute type 1 is present and the value is
+ sortField (InternationalString). If generic sortKey is of type
+ sortAttributes, then the attributes in list is used . generic sortKey
+ of type elementSpec is not supported.
+
+
+ The term in the sorting Attribute-Plus-Term combo should hold
+ an integer. The value is 0 for primary sorting criteria, 1 for second
+ criteria, etc.
+
+
+