Blogasin jo kesällä (Garo&beid=16648551) uudesta ehdottavasta hakuominaisuudesta, joka ehdottaa käyttäjälle reaaliaikaisesti sopivia hakutuloksia. Tämä haku onkin ollut kuva- ja blogiluokitteluissa jo useita kuukausia ja käyttäjiltä saatu palaute on ollut positiivista. Kiitoksia tästä.
Hakua testattiin yläreunan yhteisö- ja kanavahakukentissä jo alkusyksystä, mutta ominaisuutta ei saatu julkaistua näissä ikävän banneriongelman takia: hakutulokset jäivät ikävästi joidenkin bannerien alle, jonka selvittäminen kesti ikävän pitkään.
Aikaa ei kuitenkaan tuhlattu, vaan mainososaston ratkoessa banneriongelmia, koodiporukkamme lisäsi alla olevaan hakumoottoriin useita uusia ominaisuuksia. Hakumoottori tukee nyt myös käyttäjien hakuja, joka saadaan testiryhmän testaukseen kunhan sille saadaan sopiva ulkoasu (nykyinen nimimerkkihaun ulkoasu on omaa käsialaani ja se ei ole erityisen kaunis). Käyttäjien ja yhteisöjen lisäksi hakumoottori voidaan säätää hakemaan lähes mitä tahansa sisältöä ja sitä onkin testattu onnistuneesti mm. uuden kaupan hakukoneena.
Itse hakumoottori on javalla ohjelmoitu komponentti, joka hakee haettavan tiedon gallerian tietokannasta muutamilla SQL-kyselyillä ja pitää haettavan tiedon koneen keskusmuistissa. Tieto pilkotaan sanoihin ja sanat talletetaan erilaisiin indekseihin. Esimerkiksi nimimerkkihaussa jokainen nimi talletetaan alkuperäisessä muodossa yhteen indeksiin ja toiseen indeksiin ilman erikoismerkkejä, joka helpottaa vaikeasti kirjoitettavien nimimerkkien löytämistä.
Käyttäjän selaimen hakukenttään kirjoittama teksti käsitellään javascriptilla ja välitetään hakupalvelimelle, jossa haku tehdään samanaikaisesti molempiin indekseihin ja näiden hakutuloksista kootaan yksi tulosjoukko. Tulokset järjestetään vielä supersalaisella hakualgoritmilla, jonka jälkeen käyttäjälle lähetetään noin kymmenen parasta hakutulosta.
Hakumoottorin suunnittelussa haettiin kolmea asiaa:
1) Käyttämisen helppoutta Galtsun käyttäjille: käyttämisen pitäisi olla helppoa, tuloksien pitäisi olla järkeviä ja käyttäjän pitäisi löytää hakemansa mahdollisimman hyvin.
2) Nopeutta: hakutuloksien on tultava mahdollisimman nopeasti käyttäjille. Käytännössä valtaosa hauista tapahtuu alle 30 millisekunnissa, mitä itse pidän mukavan nopeana.
3) Käyttämisen ja käyttöönoton helppoutta Galtsun koodaajille: Galtsun uusia ominaisuuksia kehittävät koodaajat voivat halutessaan ottaa haun käyttöön lähes missä tahansa hakukentässä noin puolen tunnin työmäärällä.
Hakumoottorin kehittämistä jatketaan vielä tulevaisuudessa, jonka johdosta saatamme esimerkiksi nähdä vain yhden hakukentän, joka osaa hakea samanaikaisesti käyttäjiä, yhteisöjä ja irc-kanavia.