OpenSearch/docs/reference/analysis/analyzers/keyword-analyzer.asciidoc

90 lines
2.0 KiB
Plaintext

[[analysis-keyword-analyzer]]
=== Keyword analyzer
++++
<titleabbrev>Keyword</titleabbrev>
++++
The `keyword` analyzer is a ``noop'' analyzer which returns the entire input
string as a single token.
[float]
=== Example output
[source,console]
---------------------------
POST _analyze
{
"analyzer": "keyword",
"text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}
---------------------------
/////////////////////
[source,console-result]
----------------------------
{
"tokens": [
{
"token": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.",
"start_offset": 0,
"end_offset": 56,
"type": "word",
"position": 0
}
]
}
----------------------------
/////////////////////
The above sentence would produce the following single term:
[source,text]
---------------------------
[ The 2 QUICK Brown-Foxes jumped over the lazy dog's bone. ]
---------------------------
[float]
=== Configuration
The `keyword` analyzer is not configurable.
[float]
=== Definition
The `keyword` analyzer consists of:
Tokenizer::
* <<analysis-keyword-tokenizer,Keyword Tokenizer>>
If you need to customize the `keyword` analyzer then you need to
recreate it as a `custom` analyzer and modify it, usually by adding
token filters. Usually, you should prefer the
<<keyword, Keyword type>> when you want strings that are not split
into tokens, but just in case you need it, this would recreate the
built-in `keyword` analyzer and you can use it as a starting point
for further customization:
[source,console]
----------------------------------------------------
PUT /keyword_example
{
"settings": {
"analysis": {
"analyzer": {
"rebuilt_keyword": {
"tokenizer": "keyword",
"filter": [ <1>
]
}
}
}
}
}
----------------------------------------------------
// TEST[s/\n$/\nstartyaml\n - compare_analyzers: {index: keyword_example, first: keyword, second: rebuilt_keyword}\nendyaml\n/]
<1> You'd add any token filters here.