Annons

Utvecklingsbloggen

Ola Henriksson

Ola Henriksson

Som du ser har vi i veckan gjort om vår sökfunktion. Har du inte märkt det gör det egentligen inget. Tanken var att så smärtfritt som möjligt byta från en tidigare leverantör (Sesam) till ett egenutvecklat system.

För oss som jobbar bakom kulisserna har det varit ett stort och omfattande arbete, gjort under tydlig tidspress. Sesam skulle stänga sin söktjänst kl 24 den 30 juni, kl 12.43 samma dag bytte vi. Det vi lanserade är i princip exakt samma tjänst som vi fick via Sesam. Några saker återstår att färdigställa, och det har Fredric Karén redogjort för här.

Men framför allt innebär den nya sökfunktionen två stora fördelar:

1) Vi kapar kostnader. Sesam byggde på sökmotor Fast, som har riktigt höga licenskostnader.

2) Vi tar kommandot över vidareutvecklingen. Förhoppningsvis kommer läsarna upptäcka flera spännande funktioner som vi kan bygga ovanpå den nya sökmotorn. Daniel Halldin, systemutvecklare, som gjort hästjobbet med att utveckla söket under kort tidspress, utvecklar några idéer nedan.

Daniel Halldin, systemutvecklare på SvD, får här själv svara på vad han egentligen gjort?

– Jag har byggt ”extractors” som bevakar Escenic och hämtar ut information om artikeltyper och sektioner. Så fort en ändring sparats indexeras förändringen. Förändringar i en artikel tar bara någon minut innan de syns i söklistningen. Jag har byggt hela söksidan med presentation av resultatet. Jag har också gjort en export från vår blogg som enkelt borde gå att anpassa till andra typer av externa flöden. Sen har jag försökt minimera lasten på våra servrar. Ramverket och sökfrågorna cacheas för att förhindra överbelastning om många söker på samma begrepp.

Vad är det för teknik bakom?

Solr är själva sökmotorn som håller indexet och levrerar söksvar till klienterna (våra respektive söktjänster). Bygger på sökbiblioteket Lucene.

– Solrj, javaclient för att förenkla kommunikationen som skickas mellan klienter och server.

– I övrigt samma som vi redan innan använder Maven, Subversion (det nya är att vi hämtar kod från Aftonbladet). Vi kör vår sökmotor i Escenic-installationen, på alla våra webbfrontar.

Hur är det att jobba med Solr?

– Jag hade mycket liten erfarenhet av att jobba med sökmotorer. Spontant tycker jag att den har varit relativt smidig att jobba med. Den är enkel att installera, är flexibel och det finns många hjälpmedel runt omkring som det brukar med ”open source”-applikationer, bristfälligt dokumenterade dock. Allt hittills tyder på en bra prestanda.

Vilka delar görs tillsammans med Aftonbladet och hur fungerar det?

– Vi använder samma Solr-servrar, men separata index. Kodbasen för indexeraren är utvecklad av Aftonbladet och ligger i deras repository. Den laddas över och slås samman med vår specifika kod (våra extractors) när man bygger den.

Hur många timmars utveckling har du lagt ner?

– Ungefär en månad heltidsarbete. Sedan har vår systemutvecklare lagt Martin Andersson lagt ner några dagar också, bland annat på front end-utveckling.

Vad har varit den svåraste utmaningen?

– Den korta tid tills vi var tvungna att lansera. Det är också en stor utmaning att jobba med dynamiskt genrerade sidor på välbesökta siter. Det gäller att fundera ut hur man kan bygga den så den tar så lite kraft av servrarna som möjligt och cachea så mycket som möjligt, på olika nivåer. Dessutom att bygga en prestandamässigt bra söktjänst och att sätta sig in i och förstå Solr och Solrj.

Vad kan man mer göra, vad återstår på utvecklingslistan?

– Exportera data från, och indexera: bloggar och quizzar.

– Hantera viktade sökningar, ex direktträff på specifikt index.

– Skapa autolistningar (med xslt eller jquery) på andra delar av siten, ex senaste filmrecensionerna med betyg 6, senast skrivet av författare X, senaste researtiklarna etc…

– Geografiska sökningar.

– Bild- och videosök.

– Ett smidigare gränssnitt för filtrering

– Testa att jobba med jquery-stödet som finns, minisökningar i högerspalten?

– Testa andra sökalgoritmer för att se vilket som levererar bäst träffar.

Något övrigt att tillägga?

– Jag är mycket nöjd med vad vi hunnit åstadkomma på så kort tid. Det är en bit kvar till det Sesam hade, men nu har vi kontroll över koden själva och kan vidareutveckla den och använda den till mycket mer än en sökmotor.

De som driver utvecklingen är användarna och därför är det jätteviktigt med era synpunkter. Enkelheten och träffsäkerheten hos Google sätter ribban för vad vi måste leverera till våra besökare. Den tjänst vi har idag har utvecklats tillsammans med Sesam under flera år och det är alltid lättare att jobba vidare om man har en bra grund att stå på.