slovak-egov / nkod-portal

Webový portál pre NKOD (Národný katalóg otvorených dát)
Other
1 stars 1 forks source link

Textované vyhľadávanie je nepoužiteľné - prvá oprava aspoň pre exactMatch #74

Closed miroslavliska closed 4 months ago

miroslavliska commented 5 months ago

Cez portál data.slovensko.sk je veľmi obtiažne niečo dohľadať cez funkcionalitu vyhľadávania. Napr. tento dataset s názvom "Harmonogram zverejňovania" https://data.slovensko.sk/datasety/9e3c773c-15c4-4c00-b639-f125f072a72e ktoré publikuje Min. Spravodlivosti nie je možné pomocou funkcie vyhľadávania vôbec nájsť. Nie je ani medzi výsledkami. Tým sa asi navyše stratí fazeta Poskytovateľ.

Ak ale viem, že tento dataset publikuje Min. Spravodlivosti, a zvolím si ho vo fazete, tak ho viem vizuálne nájsť na N-tom mieste. Nesmiem však kombinovať zvoleného poskytovateľa s názvom datasetu, tj. "Harmonogram zverejňovania", pretože opäť dostanem prázdne výsledky.

Toto vyhľadávanie je nepoužiteľné. :(

Prosím upraviť algoritmus vyhľadávania, aby išiel exact match, tj. nájdenie datasetu podľa jeho presného mena.

hornik-informo commented 5 months ago

Exact match je možný, ale bolo by z hľadiska UX krok späť, kedže počas písania by sa žiadne výsledky nezobrazovali. Naopak bežne idú vyhľadávania do menších zhôd ako napr. pomocou Levenshteinovej vzdialenosti. Zatiaľ sme upravili hľadanie bez akcentu. Ak trváte na presnej zhode, tak napíšte.

miroslavliska commented 5 months ago

Exact match je možný, ale bolo by z hľadiska UX krok späť, kedže počas písania by sa žiadne výsledky nezobrazovali. Naopak bežne idú vyhľadávania do menších zhôd ako napr. pomocou Levenshteinovej vzdialenosti. Zatiaľ sme upravili hľadanie bez akcentu. Ak trváte na presnej zhode, tak napíšte.

Samozrejme že netrvám. Rozumiem (do istej miery) rôznym novým technikám v rámci FULLTextu (aj Levenstheinu), avšak ak viem presný názov datasetu, tak ho musím byť schopný nájsť. Neviem či je to treba riešiť kombináciou, že ak sa nájde exactMatch tak vrátim len tieto výsledky, ak nenájdem exactMatch, tak potom skúšam closeMatch.

V prvom komente som ukázal, že ak viem iba názov datasetu, napr. "Harmonogram zverejňovania", tak ho nedokážem cez text vôbec nájsť. Musím aspoň vedieť, že poskytovateľ je MSSR a toto nastaviť vo fazete. Keď sme mali spoločný meeting s NASESom, tak presne chcel kolega nájsť dataset podľa mena v novom portáli, čo je podľa bude najčastejší prípad, a medzi výsledkami ho nenašiel.

hornik-informo commented 5 months ago

Potrebujeme sa uistiť, že vyhľadávanie môže ostať v aktuálnom stave.

image

miroslavliska commented 4 months ago

Dobry den, prosime aby boli textove vyhladavanie upravene tak, ze prilozene testcases budu splnene. 2024-02-14 WPNKOD-TestCases-Search.ods

Sucasne prikladam navrh od Mareka Sureka, ktory definuje, ako je mozne zlepsit vysledky:

Ahoj, na to sa pouziva taky “trik”. V principe ide o to ze si “Nazov datasetu” zaindexuje nie do 1 textFieldu ale do viacerych pricom pre kazdy field bude iny boost. V tomto pripade vzniknu napriklad 3 fieldy:

title -> toto bude exactMatch tj. type bude len obycajny string bez akychkolvek uprav (analyzerov) title_txt -> title ako text, kde sa pouzije stopfilter (odstrania sa napr. spojky ako “a”, “alebo”, … ktore nemaju zmysel), lowercase filter title_txt_no_accent -> title ako text kde sa pouzije stopfilter, lowercase filter a asciifilter (odstrani sa diakritika)

ked sa potom bude robit query tak to bude vyzera tak ze:

title^6 OR title_txt^4 OR title_txt_no_accent^2

A tak dosiahnete ten boost vo vyhladavani.

hornik-informo commented 4 months ago

Názov sa boostuje už teraz. Tieto tesycasy by zrejme aj boli splnené, ale narušuje to požiadavka #52, podľa ktorej sa výsledky zoraďujú podľa dátumu aktualizácie. Čiže faktúry december sa vo výsledkoch nachádzajú, ale na základe zoradenia nemôžu byť vyššie ako faltúry z januára.

Navrhujem zaviesť prednastavene zoradenie podľa relevancie - to bude znamenať podľa dátumu modifikácie bez textového hľadania a v prípade hľadania s textom podľa nájdeného skóre zhody s hľadaným výrazom.

miroslavliska commented 4 months ago

Navrhujem zaviesť prednastavene zoradenie podľa relevancie - to bude znamenať podľa dátumu modifikácie bez textového hľadania a v prípade hľadania s textom podľa nájdeného skóre zhody s hľadaným výrazom.

Súhlasím. Keď vyhľadávam podľa textu a existuje exactMatch, tak výsledok musí byť prvý, čiže skóre výsledku je v tomto prípade nadradené dátumu modifikácie.

hornik-informo commented 4 months ago

Zmena bola nasadená. Test casy sú podľa mňa splnené. V celku dôležité je sa ešte dohodnúť, či sa majú pri vyhľadávaní striktne vyžadovať všetky výrazy alebo stačí jeden. Príklad: ak hľadám "Národný bezpečnostný úrad", tak je samozrejme na prvom mieste, ale v zozname sú aj všetky úrady, lebo majú v názve slovo "úrad".

hornik-informo commented 4 months ago

Aktuálne nefunguje správne zoradenie, pretože časť riešenia sa nezaktualizovala a nie je možné získať ani odoslať nové image do OCI repozitára (dochádza k timeoutom). Nefunguje to ani na našom firemnom účte v OCI. Hneď ako to bude možné, tak to dáme do poriadku.

hornik-informo commented 4 months ago

OCI repozitáre stále nefungujú, ale už to mám aj potvrdené od Oracle, že to riešia.

Screenshot 2024-02-21 at 16-42-28 Announcements Oracle Cloud Infrastructure

hornik-informo commented 4 months ago

Už je to vyriešené.

miroslavliska commented 4 months ago

Áno, práve som to otestoval, vyzerá to veľmi dobre.