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 |
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 |
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 |
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 |
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 |
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.
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"}]}]}
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"}]}]}
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"}]}]}
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"}]}]}
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.