Keyword analyzer
The keyword
analyzer doesn’t tokenize text at all. Instead, it treats the entire input as a single token and does not break it into individual tokens. The keyword
analyzer is often used for fields containing email addresses, URLs, or product IDs and in other cases where tokenization is not desirable.
Example
Use the following command to create an index named my_keyword_index
with a keyword
analyzer:
PUT /my_keyword_index
{
"mappings": {
"properties": {
"my_field": {
"type": "text",
"analyzer": "keyword"
}
}
}
}
Configuring a custom analyzer
Use the following command to configure an index with a custom analyzer that is equivalent to the keyword
analyzer:
PUT /my_custom_keyword_index
{
"settings": {
"analysis": {
"analyzer": {
"my_keyword_analyzer": {
"tokenizer": "keyword"
}
}
}
}
}
Generated tokens
Use the following request to examine the tokens generated using the analyzer:
POST /my_custom_keyword_index/_analyze
{
"analyzer": "my_keyword_analyzer",
"text": "Just one token"
}
The response contains the generated tokens:
{
"tokens": [
{
"token": "Just one token",
"start_offset": 0,
"end_offset": 14,
"type": "word",
"position": 0
}
]
}