| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 | [[analysis-standard-tokenizer]]=== Standard tokenizer++++<titleabbrev>Standard</titleabbrev>++++The `standard` tokenizer provides grammar based tokenization (based on theUnicode Text Segmentation algorithm, as specified inhttps://unicode.org/reports/tr29/[Unicode Standard Annex #29]) and works wellfor most languages.[discrete]=== Example output[source,console]---------------------------POST _analyze{  "tokenizer": "standard",  "text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."}---------------------------/////////////////////[source,console-result]----------------------------{  "tokens": [    {      "token": "The",      "start_offset": 0,      "end_offset": 3,      "type": "<ALPHANUM>",      "position": 0    },    {      "token": "2",      "start_offset": 4,      "end_offset": 5,      "type": "<NUM>",      "position": 1    },    {      "token": "QUICK",      "start_offset": 6,      "end_offset": 11,      "type": "<ALPHANUM>",      "position": 2    },    {      "token": "Brown",      "start_offset": 12,      "end_offset": 17,      "type": "<ALPHANUM>",      "position": 3    },    {      "token": "Foxes",      "start_offset": 18,      "end_offset": 23,      "type": "<ALPHANUM>",      "position": 4    },    {      "token": "jumped",      "start_offset": 24,      "end_offset": 30,      "type": "<ALPHANUM>",      "position": 5    },    {      "token": "over",      "start_offset": 31,      "end_offset": 35,      "type": "<ALPHANUM>",      "position": 6    },    {      "token": "the",      "start_offset": 36,      "end_offset": 39,      "type": "<ALPHANUM>",      "position": 7    },    {      "token": "lazy",      "start_offset": 40,      "end_offset": 44,      "type": "<ALPHANUM>",      "position": 8    },    {      "token": "dog's",      "start_offset": 45,      "end_offset": 50,      "type": "<ALPHANUM>",      "position": 9    },    {      "token": "bone",      "start_offset": 51,      "end_offset": 55,      "type": "<ALPHANUM>",      "position": 10    }  ]}----------------------------/////////////////////The above sentence would produce the following terms:[source,text]---------------------------[ The, 2, QUICK, Brown, Foxes, jumped, over, the, lazy, dog's, bone ]---------------------------[discrete]=== ConfigurationThe `standard` tokenizer accepts the following parameters:[horizontal]`max_token_length`::    The maximum token length. If a token is seen that exceeds this length then    it is split at `max_token_length` intervals. Defaults to `255`.[discrete]=== Example configurationIn this example, we configure the `standard` tokenizer to have a`max_token_length` of 5 (for demonstration purposes):[source,console]----------------------------PUT my-index-000001{  "settings": {    "analysis": {      "analyzer": {        "my_analyzer": {          "tokenizer": "my_tokenizer"        }      },      "tokenizer": {        "my_tokenizer": {          "type": "standard",          "max_token_length": 5        }      }    }  }}POST my-index-000001/_analyze{  "analyzer": "my_analyzer",  "text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."}----------------------------/////////////////////[source,console-result]----------------------------{  "tokens": [    {      "token": "The",      "start_offset": 0,      "end_offset": 3,      "type": "<ALPHANUM>",      "position": 0    },    {      "token": "2",      "start_offset": 4,      "end_offset": 5,      "type": "<NUM>",      "position": 1    },    {      "token": "QUICK",      "start_offset": 6,      "end_offset": 11,      "type": "<ALPHANUM>",      "position": 2    },    {      "token": "Brown",      "start_offset": 12,      "end_offset": 17,      "type": "<ALPHANUM>",      "position": 3    },    {      "token": "Foxes",      "start_offset": 18,      "end_offset": 23,      "type": "<ALPHANUM>",      "position": 4    },    {      "token": "jumpe",      "start_offset": 24,      "end_offset": 29,      "type": "<ALPHANUM>",      "position": 5    },    {      "token": "d",      "start_offset": 29,      "end_offset": 30,      "type": "<ALPHANUM>",      "position": 6    },    {      "token": "over",      "start_offset": 31,      "end_offset": 35,      "type": "<ALPHANUM>",      "position": 7    },    {      "token": "the",      "start_offset": 36,      "end_offset": 39,      "type": "<ALPHANUM>",      "position": 8    },    {      "token": "lazy",      "start_offset": 40,      "end_offset": 44,      "type": "<ALPHANUM>",      "position": 9    },    {      "token": "dog's",      "start_offset": 45,      "end_offset": 50,      "type": "<ALPHANUM>",      "position": 10    },    {      "token": "bone",      "start_offset": 51,      "end_offset": 55,      "type": "<ALPHANUM>",      "position": 11    }  ]}----------------------------/////////////////////The above example produces the following terms:[source,text]---------------------------[ The, 2, QUICK, Brown, Foxes, jumpe, d, over, the, lazy, dog's, bone ]---------------------------
 |