# Kwic Mtas can produce keywords in context (kwic) for Mtas queries within the listed documents. To get this information, in Solr requests, besides the parameter to enable the [Mtas query component](search_component.html), the following parameter should be provided. | Parameter | Value | Obligatory | |-----------------------|--------|-------------| | mtas.kwic | true | yes | Keyword in context results on multiple spans can be produced within the same request. To distinguish them, a unique identifier has to be provided for each of the required kwics. | Parameter | Value | Info | Obligatory | |-------------------------------------------------|--------------|--------------------------------|-------------| | mtas.kwic.\<identifier\>.key | \<string\> | key used in response | no | | mtas.kwic.\<identifier\>.field | \<string\> | Mtas field | yes | | mtas.kwic.\<identifier\>.query.type | \<string\> | query language: [cql](search_cql.html) | yes | | mtas.kwic.\<identifier\>.query.value | \<string\> | query: [cql](search_cql.html) | yes | | mtas.kwic.\<identifier\>.query.prefix | \<string\> | default prefix | no | | mtas.kwic.\<identifier\>.query.ignore | \<string\> | ignore query: [cql](search_cql.html) | no | | mtas.kwic.\<identifier\>.query.maximumIgnoreLength | \<integer\> | maximum number of succeeding occurrences to ignore | no | | mtas.kwic.\<identifier\>.prefix | \<string\> | comma separated list of prefixes | no | | mtas.kwic.\<identifier\>.number | \<double\> | maximum number for selection of items for each document | no | | mtas.kwic.\<identifier\>.start | \<double\> | offset for selection of items for each document | no | | mtas.kwic.\<identifier\>.left | \<double\> | number of positions left of hit | no | | mtas.kwic.\<identifier\>.right | \<double\> | number of positions right of hit | no | | mtas.kwic.\<identifier\>.output | \<string\> | "token" or "hit" | 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.kwic.\<identifier\>.query.variable.\<identifier variable\>.name | \<string\> | name of variable | yes | | mtas.kwic.\<identifier\>.query.variable.\<identifier variable\>.value | \<string\> | comma separated list of values | yes | --- ## Examples 1. [Token](#token) : List of tokens with prefix *t*, *pos* and *s* for adjectives followed by a noun 2. [Hit](#hit) : List of hits with prefix *t*, *pos* and *s* for articles followed by an adjective and a noun 3. [Left and Right](#left-and-right) : List of tokens with prefix *t* and *s* for sentences starting with an article, expanded to the left and the right --- <a name="token"></a> ### Token **Example** Keyword in context with output type *token* and prefixes *t*, *pos* and *s* for adjectives followed by a noun **CQL** `[pos="ADJ"][pos="N"]` **Request and response** `fq=%7B%21mtas_cql+field%3D%22text%22+query%3D%22%5Bpos%3D%5C%22ADJ%5C%22%5D%5Bpos%3D%5C%22N%5C%22%5D%22+++%7D&q=%2A%3A%2A&mtas=true&mtas.kwic=true&mtas.kwic.0.field=text&mtas.kwic.0.query.type=cql&mtas.kwic.0.query.value=%5Bpos%3D%22ADJ%22%5D%5Bpos%3D%22N%22%5D&mtas.kwic.0.key=adjective%2Bnoun&mtas.kwic.0.prefix=t%2Cpos%2Cs&mtas.kwic.0.output=token&mtas.kwic.0.number=2&mtas.kwic.0.start=0&mtas.kwic.0.left=0&mtas.kwic.0.right=0&fl=%2A&start=0&rows=1&wt=json&indent=true` ```json "mtas":{ "kwic":[{ "key":"adjective+noun", "list":[{ "documentKey":"61d2a1b3-9068-4815-ba4d-3370e5a809d7", "documentTotal":31, "documentMinPosition":0, "documentMaxPosition":673, "list":[{ "startPosition":0, "endPosition":1, "tokens":[{ "mtasId":8, "prefix":"t", "value":"fusiebedrijf", "positionStart":1, "positionEnd":1, "parentMtasId":81}, { "mtasId":15, "prefix":"pos", "value":"N", "positionStart":1, "positionEnd":1}, { "mtasId":81, "prefix":"s", "value":"", "positionStart":0, "positionEnd":8, "parentMtasId":82}, { "mtasId":0, "prefix":"t", "value":"Nieuw", "positionStart":0, "positionEnd":0, "parentMtasId":81}, { "mtasId":5, "prefix":"pos", "value":"ADJ", "positionStart":0, "positionEnd":0}]}, { "startPosition":5, "endPosition":6, "tokens":[{ "mtasId":45, "prefix":"t", "value":"Belgische", "positionStart":5, "positionEnd":5, "parentMtasId":81}, { "mtasId":51, "prefix":"pos", "value":"ADJ", "positionStart":5, "positionEnd":5}, { "mtasId":55, "prefix":"t", "value":"energiemarkt", "positionStart":6, "positionEnd":6, "parentMtasId":81}, { "mtasId":62, "prefix":"pos", "value":"N", "positionStart":6, "positionEnd":6}, { "mtasId":81, "prefix":"s", "value":"", "positionStart":0, "positionEnd":8, "parentMtasId":82}]}]}]}]} ``` <a name="hit"></a> ### Hit **Example** Keyword in context with output type *hit* and prefixes *t*, *pos* and *s* for articles followed by an adjective and a noun **CQL** `[pos="LID"][pos="ADJ"][pos="N"]` **Request and response** `fq=%7B%21mtas_cql+field%3D%22text%22+query%3D%22%5Bpos%3D%5C%22LID%5C%22%5D%5Bpos%3D%5C%22ADJ%5C%22%5D%5Bpos%3D%5C%22N%5C%22%5D%22+++%7D&q=%2A%3A%2A&mtas=true&mtas.kwic=true&mtas.kwic.0.field=text&mtas.kwic.0.query.type=cql&mtas.kwic.0.query.value=%5Bpos%3D%22LID%22%5D%5Bpos%3D%22ADJ%22%5D%5Bpos%3D%22N%22%5D&mtas.kwic.0.key=article%2Badjective%2Bnoun&mtas.kwic.0.prefix=t%2Cpos%2Cs&mtas.kwic.0.output=hit&mtas.kwic.0.number=2&mtas.kwic.0.start=0&mtas.kwic.0.left=0&mtas.kwic.0.right=0&fl=%2A&start=0&rows=1&wt=json&indent=true` ```json "mtas":{ "kwic":[{ "key":"article+adjective+noun", "list":[{ "documentKey":"61d2a1b3-9068-4815-ba4d-3370e5a809d7", "documentTotal":21, "documentMinPosition":0, "documentMaxPosition":673, "list":[{ "hit":{ "92":[["t", "De"], ["pos", "LID"], ["s", null]], "93":[["t", "nieuwe"], ["pos", "ADJ"], ["s", null]], "94":[["t", "fusiegroep"], ["pos", "N"], ["s", null]]}}, { "hit":{ "106":[["t", "De"], ["pos", "LID"], ["s", null]], "107":[["t", "Belgische"], ["pos", "ADJ"], ["s", null]], "108":[["t", "regering"], ["pos", "N"], ["s", null]]}}]}]}]} ``` --- <a name="left-and-right"></a> ### Left and Right **Example** Keyword in context with output type *token* and prefixes *t* and *s* for sentences starting with an article, expanded two positions to the left and one position to the right **CQL** `<s>[pos="LID"]` **Request and response** `fq=%7B%21mtas_cql+field%3D%22text%22+query%3D%22%3Cs%3E%5Bpos%3D%5C%22LID%5C%22%5D%22+++%7D&q=%2A%3A%2A&mtas=true&mtas.kwic=true&mtas.kwic.0.field=text&mtas.kwic.0.query.type=cql&mtas.kwic.0.query.value=%3Cs%3E%5Bpos%3D%22LID%22%5D&mtas.kwic.0.key=sentence+starting+with+article&mtas.kwic.0.prefix=t%2Cs&mtas.kwic.0.output=token&mtas.kwic.0.number=2&mtas.kwic.0.start=0&mtas.kwic.0.left=2&mtas.kwic.0.right=1&fl=%2A&start=0&rows=1&wt=json&indent=true` ```json "mtas":{ "kwic":[{ "key":"sentence starting with article", "list":[{ "documentKey":"61d2a1b3-9068-4815-ba4d-3370e5a809d7", "documentTotal":10, "documentMinPosition":0, "documentMaxPosition":673, "list":[{ "startPosition":14, "endPosition":14, "tokens":[{ "mtasId":136, "prefix":"t", "value":"fusiegroep", "positionStart":15, "positionEnd":15, "parentMtasId":295}, { "mtasId":295, "prefix":"s", "value":"", "positionStart":14, "positionEnd":36, "parentMtasId":417}, { "mtasId":128, "prefix":"t", "value":"De", "positionStart":14, "positionEnd":14, "parentMtasId":295}, { "mtasId":113, "prefix":"t", "value":"afslanking", "positionStart":13, "positionEnd":13, "parentMtasId":126}, { "mtasId":107, "prefix":"t", "value":"tot", "positionStart":12, "positionEnd":12, "parentMtasId":126}, { "mtasId":126, "prefix":"s", "value":"", "positionStart":9, "positionEnd":13, "parentMtasId":127}]}, { "startPosition":92, "endPosition":92, "tokens":[{ "mtasId":729, "prefix":"t", "value":".", "positionStart":91, "positionEnd":91, "parentMtasId":737}, { "mtasId":746, "prefix":"t", "value":"nieuwe", "positionStart":93, "positionEnd":93, "parentMtasId":853}, { "mtasId":738, "prefix":"t", "value":"De", "positionStart":92, "positionEnd":92, "parentMtasId":853}, { "mtasId":853, "prefix":"s", "value":"", "positionStart":92, "positionEnd":105, "parentMtasId":1114}, { "mtasId":723, "prefix":"t", "value":"Parijs", "positionStart":90, "positionEnd":90, "parentMtasId":737}, { "mtasId":737, "prefix":"s", "value":"", "positionStart":59, "positionEnd":91, "parentMtasId":1114}]}]}]}]} ``` --- ##Lucene To use keywords in context [directly in Lucene](installation_lucene.html), *ComponentKwic* together with the provided *collect* method can be used.