In My application English name consist of Greek word. For example i have title field called Test αβ γ, people in application search by keyword Test ab or Test alphab or Test alphabeta gamma.
I have followed this link - https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-icu-transform.html and used icu_transform
this analyse α to a but not to alpha, for example if i search Test ab then i get result but if i use Test alphabeta then no results are returned.
With icu_transform filter i have mapped char_filter like below -
"char_filter": {
"default_char_filter": {
"type": "html_strip"
},
"greek_char_filter": {
"type": "mapping",
"mappings": [
"α => alpha",
"β => beta",
"γ => gamma",
"δ => d",
"ε => epsilon",
"ζ => z",
"η => h",
"θ => th",
"ι => i",
"κ => kappa",
"λ => l",
"μ => m",
"ν => n",
"ξ => ks",
"ο => o",
"π => p",
"ρ => r",
"σ => s",
"τ => t",
"υ => y",
"φ => f",
"χ => x",
"ψ => ps",
"ω => w",
"αι => ai",
"ου => ou",
"ει => ei",
"οι => oi",
"αυ => au",
"ευ => eu",
"μπ => mp",
"γκ => gk",
"ντ => nt",
"γγ => gg"
]
}
},
And analyser is
"greek_analyzer": {
"filter": [
"lowercase",
"keyword_repeat",
"synonym_filter",
"default_stemmer",
"unique_stem"
],
"tokenizer": "standard"
}
Mapping is
"name": {
"type": "text",
"analyzer": "greek_analyzer"
}
Please suggest changes on this