66 lines
1.7 KiB
Markdown
66 lines
1.7 KiB
Markdown
|
---
|
||
|
mapped_pages:
|
||
|
- https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-icu-transform.html
|
||
|
---
|
||
|
|
||
|
# ICU transform token filter [analysis-icu-transform]
|
||
|
|
||
|
Transforms are used to process Unicode text in many different ways, such as case mapping, normalization, transliteration and bidirectional text handling.
|
||
|
|
||
|
You can define which transformation you want to apply with the `id` parameter (defaults to `Null`), and specify text direction with the `dir` parameter which accepts `forward` (default) for LTR and `reverse` for RTL. Custom rulesets are not yet supported.
|
||
|
|
||
|
For example:
|
||
|
|
||
|
```console
|
||
|
PUT icu_sample
|
||
|
{
|
||
|
"settings": {
|
||
|
"index": {
|
||
|
"analysis": {
|
||
|
"analyzer": {
|
||
|
"latin": {
|
||
|
"tokenizer": "keyword",
|
||
|
"filter": [
|
||
|
"myLatinTransform"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"filter": {
|
||
|
"myLatinTransform": {
|
||
|
"type": "icu_transform",
|
||
|
"id": "Any-Latin; NFD; [:Nonspacing Mark:] Remove; NFC" <1>
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
GET icu_sample/_analyze
|
||
|
{
|
||
|
"analyzer": "latin",
|
||
|
"text": "你好" <2>
|
||
|
}
|
||
|
|
||
|
GET icu_sample/_analyze
|
||
|
{
|
||
|
"analyzer": "latin",
|
||
|
"text": "здравствуйте" <3>
|
||
|
}
|
||
|
|
||
|
GET icu_sample/_analyze
|
||
|
{
|
||
|
"analyzer": "latin",
|
||
|
"text": "こんにちは" <4>
|
||
|
}
|
||
|
```
|
||
|
|
||
|
1. This transforms transliterates characters to Latin, and separates accents from their base characters, removes the accents, and then puts the remaining text into an unaccented form.
|
||
|
2. Returns `ni hao`.
|
||
|
3. Returns `zdravstvujte`.
|
||
|
4. Returns `kon'nichiha`.
|
||
|
|
||
|
|
||
|
For more documentation, Please see the [user guide of ICU Transform](https://unicode-org.github.io/icu/userguide/transforms/).
|
||
|
|