Slicni pojmovi za search pretrage

Npr. korisnik pretrazuje hälsningar i ja nemam taj direktno pojam, ali imam hälsning i hälsningen
Pa bi na stranici gdje ga obavjestava da nema toga i zanimaju li ga ti slicni pojmovi.

Nebi to radio s mysql " … LIKE $pojam%" jer msilim da to nije dobro falit ce mi ovi nizi pojmovi kao slucaj iznad. Ili naprimjer ako je korisnik napravio mistyping, jel imaju neke gotove funkcije vec na bazi ili kako to izvesti ako se netko vec susretao s istim?
Radi se o sustavu na nekoliko jezika.

Pretražuj fuzzy search termin.

U PHP-u levenshtein() funkcija, al’ pregledaj i ElasticSearch i slično. Sve ovo izuzetno mijenja koncept aplikacije pa odvaži šta je potrebnije.

2 Likeova

Hvala budem proucio, nalazio sam neke stvari ali su bili vezani samo za eng jezik, sto mi nije odgovaralo buduci da treba biti univerzalno za nekoliko jezika.

Moguće da ćeš morati pribjeći i drugačijim opcijama: nove tabele u bazi gdje ćeš ručno unositi relacije (hälsningen -> hälsning) pa onda raditi UNION sa rezultatima iz primarne tabele, ili ovo isto u kombinaciji sa redis/memcached,…
Implementacija svega ovoga je tol’ko specifična i odudara od slučaja do slučaja (a u zavisnosti od mase faktora) da je teško reći bilo šta osim da proučiš sve ovo.

Toga sam se i pribojavao, pogotovo sto se radi o stotinama tisuca upisa.

Uz poznavanje svih detalja trebale bi sedmice [minimum] da bi se razmotrilo kojim pristupom krenuti.
'Oću da kažem, što se kasnije krene - biće ih i više.
Prvo što bi trebalo je napraviti bazu novih pretraga koje ne vraćaju rezultate pa vidjeti koje su to tačno te šta sa njima i otud krenuti.
Isto tako može se razmotriti i on-site Google custom search.

1 Like

Radio sam jednom korekciju za misstyping i ispalo je da misstypin podliježe pod par pravila:

Dva slova zarotirana: “auot” umjesto “auto”
Slovo viška: autoo
Slovo manjka: ato
Krivo slovo: auzo

Čisto koristan info da tih kombinacija nema beskonacno, nego skoro sve podlijeze u gornje slučajeve. Ali ovo su gore posljedice keyboard tipfelera…ne i krivo napisanih rijeci iz nepoznavanja pisanja. Ovo drugo se pak moze pokriti prepoznavanjem uzoraka…pošto svi ljudi prave slične greške.

Druga možda korisna informacija: ako riječi usporediš u domeni suglasnika (trimaš im samoglasnike) , poprilično dobro ćeš imati poveznice između istih riječi …a otporan si na svašta. U hr jeziku si tako recimo pokrio praktički sve padeže…

Možeš koristiti SOUNDEX(), npr:

SELECT 'kolona' FROM 'tabela' WHERE soundex(kolona) = soundex("hälsningar ");

pogledaj link how-to-query-soundex-in-mysql

Zadnji odgovor je za kompleksnije slučajeve.
Za engleski jezik radi sasvim dobro, a za ostele nisam siguran.

1 Like