| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 | [[analysis-simple-analyzer]]=== Simple AnalyzerThe `simple` analyzer breaks text into terms at any non-letter character, suchas numbers, spaces, hyphens and apostrophes, discards non-letter characters, and changes uppercase to lowercase.==== Example[source,js]---------------------------POST _analyze{  "analyzer": "simple",  "text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."}---------------------------// CONSOLE/////////////////////[source,js]----------------------------{  "tokens": [    {      "token": "the",      "start_offset": 0,      "end_offset": 3,      "type": "word",      "position": 0    },    {      "token": "quick",      "start_offset": 6,      "end_offset": 11,      "type": "word",      "position": 1    },    {      "token": "brown",      "start_offset": 12,      "end_offset": 17,      "type": "word",      "position": 2    },    {      "token": "foxes",      "start_offset": 18,      "end_offset": 23,      "type": "word",      "position": 3    },    {      "token": "jumped",      "start_offset": 24,      "end_offset": 30,      "type": "word",      "position": 4    },    {      "token": "over",      "start_offset": 31,      "end_offset": 35,      "type": "word",      "position": 5    },    {      "token": "the",      "start_offset": 36,      "end_offset": 39,      "type": "word",      "position": 6    },    {      "token": "lazy",      "start_offset": 40,      "end_offset": 44,      "type": "word",      "position": 7    },    {      "token": "dog",      "start_offset": 45,      "end_offset": 48,      "type": "word",      "position": 8    },    {      "token": "s",      "start_offset": 49,      "end_offset": 50,      "type": "word",      "position": 9    },    {      "token": "bone",      "start_offset": 51,      "end_offset": 55,      "type": "word",      "position": 10    }  ]}----------------------------// TESTRESPONSE/////////////////////The `simple` analyzer parses the sentence and produces the following terms: [source,text]---------------------------[ the, quick, brown, foxes, jumped, over, the, lazy, dog, s, bone ]---------------------------==== Configure parametersThe `simple` analyzer does not contain configurable parameters. ==== CustomizeThe `simple` analyzer is defined by one tokenizer:Tokenizer::* <<analysis-lowercase-tokenizer,Lower Case Tokenizer>>To customize the `simple` analyzer, duplicate it to create the basis for a `custom` analyzer. The new analyzer can be modified as required, usually by adding token filters.===== Example[source,js]----------------------------------------------------PUT /simple_example{  "settings": {    "analysis": {      "analyzer": {        "rebuilt_simple": {          "tokenizer": "lowercase",          "filter": [         <1>          ]        }      }    }  }}----------------------------------------------------// CONSOLE// TEST[s/\n$/\nstartyaml\n  - compare_analyzers: {index: simple_example, first: simple, second: rebuilt_simple}\nendyaml\n/]<1> Add token filters here.
 |