8. Facets
Prev | Chapter 7. Supporting Tools | Next

## 8. Facets

YAZ supports facets in the Solr, SRU 2.0 and Z39.50 protocols.

Like Type-1/RPN, YAZ supports a string notation for specifying facets. This notataion maps straight to facets.asn. The notation is parsed by function `yaz_pqf_parse_facet_list` defined in header `yaz/pquery.h`.

For ZOOM C the facets are specified by option "facets". For yaz-client, the 'facets' command is used.

The grammar of this specification is as follows:

facet-spec ::= facet-list
facet-list ::= facet-list ',' attr-spec | attr-spec
attr-spec ::= attr-spec '@attr' string | '@attr' string

The notation is inspired by PQF. The string following '@attr' must not include blanks and is of the form `type``=``value`, where `type` is an integer and `value` is a string or an integer.

There is no formal facets attribute set (it is not given in the protocol by the facets, although it could). The following types apply:

Table 7.4. Facet attributes

Type | Description
--- | ---
1 | Field-name. This is often a string, e.g. "Author", "Year", etc.
2 | Sort order. Value should be an integer. Value 0: count descending (frequency). Value 1: alpha ascending.
3 | Number of terms requested.
4 | Start offset (starting from 1)

Prev | Up | Next
7. Sorting | Home | Chapter 8. The ODR Module