Fórum Root.cz

Hlavní témata => Server => Téma založeno: rooobertek 16. 12. 2022, 21:24:49

Název: Ako na vyhľadávanie bez diakritiky s elasticsearch, hunspell a icu_folding
Přispěvatel: 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.

Citace
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:
Kód: [Vybrat]
"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?
Název: Re:Ako na vyhľadávanie bez diakritiky s elasticsearch, hunspell a icu_folding
Přispěvatel: kotelgg 25. 12. 2022, 19:56:02
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.
Název: Re:Ako na vyhľadávanie bez diakritiky s elasticsearch, hunspell a icu_folding
Přispěvatel: Logik 26. 12. 2022, 19:37:14
Ř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.