Fórum Root.cz
Hlavní témata => Server => Téma založeno: rooobertek 16. 12. 2022, 21:24:49
-
Ahojte,
mám index v elasticsearch inšpirovaný touto sériou: https://www.ludekvesely.cz/serial-elasticsearch-4-fulltextove-vyhledavani-v-cestine/ (https://www.ludekvesely.cz/serial-elasticsearch-4-fulltextove-vyhledavani-v-cestine/)
Dostal som sa k problému, že pri vyhľadávaní bez diakritiky neviem skloňovať napr. dámsky/dámska/damsky/damska. Na úplne rovnaký problém narazil jeden diskutujúci na zdrojáku (https://zdrojak.cz/clanky/elasticsearch-vyhledavame-hezky-cesky-ii-a-taky-slovensky/), ale bez odpovede.
Narazil jsem na problém s diakritikou, konkrétně se jedná například o výraz „dámský“ vs „damsky“. ...
V mojom prípade je analyzér zostavený veľmi podobne:
"slovak": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"slovak_stop",
"slovak_hunspell",
"lowercase",
"icu_folding",
"unique_on_same_position"
]
}
Zatiaľ si neviem predstaviť, ako to riešiť. Ako to riešite ostatní? Cez nejaké komerčné api na dopĺňanie diakritiky?
-
Dámský vs damsky jsem vyřešil tak, že se vše nahrává ještě bez diakritiky a v případě, že to s diakritikou nic nenajde, tak hledá ještě podruhé bez diakritiky. Ale teď jsem zjistil, že na "damsk" mi nic nenajde, tak jsem pro druhé query nastavil
'fuzziness' => 1,
To přidá toleranci 1 překlepu.
-
Řešení je si upravit slovník hunspellu tak, že je bez diakritiky. Je to víceméně odstranění diakritiky ze slovníku plus vyhození pár duplicit, který tak vznikou - a celý to pak indexovat bez diakritiky.