Facets
Mtas can produce facets on metadata for Mtas queries. To get this information, in Solr requests, besides the parameter to enable the Mtas query component, the following parameter should be provided.
Parameter | Value | Obligatory |
---|---|---|
mtas.facet | true | yes |
Multiple facet results can be produced within the same request. To distinguish them, a unique identifier has to be provided for each of the required document results.
Parameter | Value | Info | Obligatory |
---|---|---|---|
mtas.facet.<identifier>.key | <string> | key used in response | no |
mtas.facet.<identifier>.field | <string> | Mtas field | yes |
Queries
One or multiple queries on the defined Mtas field have to be defined
Parameter | Value | Info | Obligatory |
---|---|---|---|
mtas.facet.<identifier>.query.<identifier query>.type | <string> | query language: cql | yes |
mtas.facet.<identifier>.query.<identifier query>.value | <string> | query: cql | yes |
mtas.facet.<identifier>.query.<identifier query>.prefix | <string> | default prefix | no |
mtas.facet.<identifier>.query.<identifier query>.ignore | <string> | ignore query: cql | no |
mtas.facet.<identifier>.query.<identifier query>.maximumIgnoreLength | <integer> | maximum number of succeeding occurrences to ignore | no |
Variables
The query may contain one or more variables, and the value(s) of these variables have to be defined
Parameter | Value | Info | Obligatory |
---|---|---|---|
mtas.facet.<identifier>.query.<identifier query>.variable.<identifier variable>.name | <string> | name of variable | yes |
mtas.facet.<identifier>.query.<identifier query>.variable.<identifier variable>.value | <string> | comma separated list of values | yes |
Base
One or multiple fields to produce facets over have to be defined
Parameter | Value | Info | Obligatory |
---|---|---|---|
mtas.facet.<identifier>.base.<identifier base>.field | <string> | field to produce facet over | yes |
mtas.facet.<identifier>.base.<identifier base>.type | <string> | required type of statistics | no |
mtas.facet.<identifier>.base.<identifier base>.sort.type | <string> | sort on term or type of statistics | no |
mtas.facet.<identifier>.base.<identifier base>.sort.direction | <string> | sort direction: asc or desc | no |
mtas.facet.<identifier>.base.<identifier base>.number | <double> | number of facets | no |
mtas.facet.<identifier>.base.<identifier base>.minimum | <double> | minimum number of occurrences span(s) | no |
mtas.facet.<identifier>.base.<identifier base>.maximum | <double> | maximum number of occurrences span(s) | no |
Ranges
Number values can be grouped into ranges by defining a size and optionally a base for these ranges.
Parameter | Value | Info | Obligatory |
---|---|---|---|
mtas.facet.<identifier>.base.<identifier base>.range.size | <double> | size of the range | yes |
mtas.facet.<identifier>.base.<identifier base>.range.base | <double> | base for the ranges | no |
Functions
To compute statistics for values based on the occurrence of one or multiple spans, optionally functions can be added. The parameters for these functions are the number of occurrences $q0, $q1, ... for each span and the number of positions $n in a document. Statistics on the value computed for each document in the set are added to the response.
Parameter | Value | Info | Obligatory |
---|---|---|---|
mtas.facet.<identifier>.base.<identifier base>.function.<identifier function>.key | <string> | key used in response | no |
mtas.facet.<identifier>.base.<identifier base>.function.<identifier function>.expression | <string> | see functions | yes |
mtas.facet.<identifier>.base.<identifier base>.function.<identifier function>.type | <string> | required type of statistics | no |
The key is added to the response and may be used to distinguish between multiple functions, and should therefore be unique within each specified facet base.
Examples
- Basic : basic facet on occurring part of speech
- Multiple : multiple facets on occurring part of speech
- Variable : facets on occurring part of speech with variable
- Range : facet on occurring part of speech with range
- Function : facet on occurring part of speech with function
Basic
Example
Facet over year for CQL query [pos="N"]
.
Request and response
q=*:*&mtas=true&mtas.facet=true&mtas.facet.0.field=test&mtas.facet.0.key=example+-+basic&mtas.facet.0.query.0.type=cql&mtas.facet.0.query.0.value=[pos%3D"N"]&mtas.facet.0.base.0.field=year&mtas.facet.0.base.0.sort.type=sum&mtas.facet.0.base.0.sort.direction=desc&mtas.facet.0.base.0.number=3&rows=0&wt=json&indent=true
"mtas":{
"facet":[{
"key":"example - basic",
"listTotal":257,
"list":[{
"mean":380.58187772925766,
"sum":697226,
"n":1832,
"key":"1997"},
{
"mean":389.84488636363636,
"sum":686127,
"n":1760,
"key":"1999"},
{
"mean":415.17861482381534,
"sum":683384,
"n":1646,
"key":"2002"}]}]}
Multiple
Example
Facet over genre and year for CQL query [pos="N"]
.
Request and response
q=*:*&mtas=true&mtas.facet=true&mtas.facet.0.field=test&mtas.facet.0.key=example+-+multiple&mtas.facet.0.query.0.type=cql&mtas.facet.0.query.0.value=[pos%3D"N"]&mtas.facet.0.base.0.field=genre&mtas.facet.0.base.0.sort.type=sum&mtas.facet.0.base.0.sort.direction=desc&mtas.facet.0.base.0.number=2&mtas.facet.0.base.1.field=year&mtas.facet.0.base.1.sort.type=sum&mtas.facet.0.base.1.sort.direction=desc&mtas.facet.0.base.1.number=2&rows=0&wt=json&indent=true
"mtas":{
"facet":[{
"key":"example - multiple",
"listTotal":26,
"list":[{
"mean":409.7034217657067,
"sum":65015836,
"n":158690,
"listTotal":257,
"list":{
"1997":{
"mean":380.58187772925766,
"sum":697226,
"n":1832},
"1999":{
"mean":389.84488636363636,
"sum":686127,
"n":1760}},
"key":"jaarboeken"},
{
"mean":409.7034217657067,
"sum":65015836,
"n":158690,
"listTotal":257,
"list":{
"1997":{
"mean":380.58187772925766,
"sum":697226,
"n":1832},
"1999":{
"mean":389.84488636363636,
"sum":686127,
"n":1760}},
"key":"periodieken"}]}]}
Variable
Example
Facet over year for CQL query [pos=$1]
with $1
equal to N,ADJ
.
Request and response
q=*:*&mtas=true&mtas.facet=true&mtas.facet.0.field=text&mtas.facet.0.key=example+-+variable&mtas.facet.0.query.0.type=cql&mtas.facet.0.query.0.value=[pos%3D$1]&mtas.facet.0.query.0.variable.0.name=1&mtas.facet.0.query.0.variable.0.value=N,ADJ&mtas.facet.0.base.0.field=year&mtas.facet.0.base.0.sort.type=sum&mtas.facet.0.base.0.sort.direction=desc&mtas.facet.0.base.0.number=3&rows=0&wt=json&indent=true
"mtas":{
"facet":[{
"key":"example - variable",
"listTotal":257,
"list":[{
"mean":531.8187772925764,
"sum":974292,
"n":1832,
"key":"1997"},
{
"mean":545.3232954545455,
"sum":959769,
"n":1760,
"key":"1999"},
{
"mean":573.460510328068,
"sum":943916,
"n":1646,
"key":"2002"}]}]}
Range
Example
Facet over year with ranges of size 10 for CQL query [pos="N"]
.
Request and response
q=*:*&mtas=true&mtas.facet=true&mtas.facet.0.field=test&mtas.facet.0.key=example+-+range&mtas.facet.0.query.0.type=cql&mtas.facet.0.query.0.value=[pos%3D"N"]&mtas.facet.0.base.0.field=year&mtas.facet.0.base.0.sort.type=sum&mtas.facet.0.base.0.sort.direction=desc&mtas.facet.0.base.0.number=3&mtas.facet.0.base.0.range.size=10&mtas.facet.0.base.0.range.base=0&rows=0&wt=json&indent=true
"mtas":{
"facet":[{
"key":"example - range",
"listTotal":29,
"list":[{
"mean":369.9619179400794,
"sum":6149507,
"n":16622,
"key":"1990-1999"},
{
"mean":559.2636835405855,
"sum":5711760,
"n":10213,
"key":"1900-1909"},
{
"mean":482.52500238117915,
"sum":5066030,
"n":10499,
"key":"1910-1919"}]}]}
Function
Example
Facet over year for CQL query [pos="N"]
with function.
Request and response
q=*:*&mtas=true&mtas.facet=true&mtas.facet.0.field=test&mtas.facet.0.key=example+-+basic&mtas.facet.0.query.0.type=cql&mtas.facet.0.query.0.value=[pos%3D"N"]&mtas.facet.0.base.0.field=year&mtas.facet.0.base.0.sort.type=sum&mtas.facet.0.base.0.sort.direction=desc&mtas.facet.0.base.0.number=2&mtas.facet.0.base.0.minimum=1&mtas.facet.0.base.0.function.0.key=relative&mtas.facet.0.base.0.function.0.expression=$q0/$n&rows=0&wt=json&indent=true
"mtas":{
"facet":[{
"key":"example - basic",
"listTotal":255,
"list":[{
"mean":515.6997041420118,
"sum":697226,
"n":1352,
"functions":{
"relative":{
"mean":0.17235837258586809,
"sum":233.02851973609367,
"n":1352}},
"key":"1997"},
{
"mean":476.14642609299096,
"sum":686127,
"n":1441,
"functions":{
"relative":{
"mean":0.17248794525621,
"sum":248.55512911419862,
"n":1441}},
"key":"1999"}]}]}
Lucene
To produce facets on metadata directly in Lucene, ComponentFacet together with the provided collect method can be used.