Usein ihmettelen, miten hankalaa työkseen ohjelmakoodia vääntäville voi olla toteuttaa toimiva hakutoiminto. Eihän siinä tarvitse muuta kuin vain toteuttaa yksinkertainen merkkijonohaku, johon on useimmissa ohjelmointikielissä valmiit funktiot olemassa. Ehkä sitä ennen eliminoi vertailtavista merkkijonoista isot kirjaimet ja diakriittiset merkit. Siihenkin on yleensä olemassa valmiit funktiot ilman, että tarvitsee edes mitään frameworkkia. Nykyaikana hyvin harvoin esimerkiksi missään verkkokaupassa kohtaa oikeasti toimivaa hakutoimintoa. Jopa Google on nykyään aivan uskomattoman huono ja palauttaa yleensä täysin epärelevantteja hakutuloksia, jotka eivät edes liity hakusanoihin mitenkään.
Jos ja kun ei haeta joka tarkkaa merkkijonoa, vaan jotain muuta, asioita, niin ei se ihan helppoakaan ole. ja oleellinen asia myös esittää se hakutulos.
Tyypillinen vaikea paikka on ns verkkokaupat, ja mitä enemmän nimikkeitä niin sitä vaikeampaa. Tilannetat ei helpota se että jos kaupalla paljon tavarantoimittajia, päämiehiä , niin niiltä ei saa hakemiseen liittyen hyvää dataa, tai edes kohtuullista. Tilannetta ei helpota että monissa tuoteryhmissä nimikkeiden elinkaari on lyhyt, termit kirjavia jne.
Vielä vaikeampaa on jossain avoimessa verkkokauppa paikassa/alustassa missä markkinoi useat toimijat, tai jopa yksityiset. jolloin vielä epämääräisemät tiedot tuotteesta.
Digitalisaatio, AI kehittyminen vienyt toki hakua "alaa" hurjasti eteenpäin, kehittyneet ja osaavat tekijät eivät tarkoita että hakutulosten esittäminen olis pelkästään asiakaslähtöistä, vaan ihan muut motiivit.
Merkistöön siirsin sen takia että lähdit toteutustapohtiin merkkien haulla, merkkijonojen haulla.
Haluttujen hakutulosten löytämiseksi ja niiden esittämiseksi on merkitystä isoilla kirjaimilla, mitä merkkijonon ympärillä, ja varsinkin jos ei ole unicodemerkistöä niin myös miettiä ne vaihtoehdot miten jokin tietty merkki on haettavaan tietokantaan/tidostoon tallenettu, ja noin yleisemmin millä eri tavoin sitä eri sisällön luojat ovat kirjoittaneet.
Lisäksi ne merkkijonon ympärillä olevat merkit. Tämä siis johdattelu siihen että jos käytettävässä ympäristössä ei ole kehittyneitä hakuominaisuuksia niin siinä jää kovasti tehtävää koodarille. pelkästään löytää ne halutut esiintymät, jonka jälkeen sitten pitäisi valita mitä esittää ja miten.
Toimii. Merkistö ei vaikuta tavujonojen vertailuihin sinänsä mitään, vaan ongelmana on vain lähinnä se, että UTF-8:ssa merkkijonon muunnos tietokoneen ymmärtämästä muodosta ihmisen ymmärtämään muotoon on häviöllinen prosessi. Jos kuitenkin diakriittiset merkit on joka tapauksessa tarkoitus eliminoida, niin asialla ei suomen kielen aakkoston kanssa ole merkitystä.
Diakriittisten merkkien eliminointi nimenomaan UTF-8:ssa on varsin simppeliä. Diakriittiset merkit tulevat kokonaan omana kirjainmerkkinä varsinaisen perusmerkin jälkeen ja ne voi vain yksinkertaisesti jättää kokonaan huomiotta. On olemassa erikoistapauksia, joissa diakriittinen merkki on kiinteänä osana itse peruskirjainta, mutta niistä on kyllä varmasti olemassa valmiita muunnostaulukoita, joilla sen saa muunnettua perusmerkkiä vastaavaksi ASCII-merkiksi.
Varsinkaan suomalaisen aakkoston kanssa ei pitäisi oikeasti tulla mitään ylitsepääsemättömiä ongelmia jotain merkkijonohakua tehdessä.
Jos mennään UTFllä niin ääkköset varmaan löytyy, ASCIIlla ei edes ole.
Jos haetaan ihmisen tuottamasta vapaasta sisällöstä, niin lähtökohta on että siellä on erilaisia tapoja ilmaista sama asia, ja sitten kirjoitus ja termivirheitä.