Sökprojekt


Behovsanalys

Ett lyckat sökprojekt handlar om att kunna skapa förutsättningar för att en sökmotor levererar de svar som användare förväntar sig. Det kan åstadkommas genom en serie av workshops där vi fångar upp krav ställda på söklösningen. De kraven ligger sedan till grund för hur indexeringen utförs.

Kort kan det beskrivas som att identifiera användargrupper, tex genom användningsfall. Vad dessa grupper letar efter, vilken hjälp de behöver för att söka information osv.

Analys av information

Precis som användare, behöver även datakällorna undersökas. Det kan också göras genom workshops med administratörer eller via någon annan form av informationsutbyte. Vi måste veta vad det är för typ av information och var det finns lagrat, om det finns metadata/taxonomier etc och deras kvalitet. Eventuellt behöver metadata bearbetas eller kompletteras.

Teknologi & Funktionalitet

Det här steget är kopplat till informationsanalysen och syftar till att gräva djupare i datakällorna, fastställa hur och när information ska extraheras, om indexeringen ska vara initial, inkrementell eller i realtid.

Deliverables

Beroende på projektets komplexitet och vårt uppdrag, så producerar vi ett antal deliverables. Tex

  • Informationsmodell – för sökändamål, inklusive en specifikation av metadata. Nuläge och transformation till index.
  • Wireframe(s) – grund till utvecklare av sökgränssnitt.
  • Interaktionsdesign, inklusive användar- och affärs-krav.
  • Konnektor-specifikation – beskrivning av koppling mot datakällor och hur indexering utförs.
  • Beskrivning/ritning av arkitektur.
  • Plan för införande

Indexeringsprocessen

Baserat på användarkraven så ser vi till att indexera relevant information från intressanta datakällor. Det syftar till att indexera i rätt tid, reducera informationsbrus, harmonisera metadata så att källor kan genomsökas på ett likartat sätt eller kombineras med varandra etc.

Vi använder Apache Nutch för att indexera webbsajter. Vi har även utvecklat plugin till Nutch för att höja kvaliteten av indexeringen.

Sökmotor – Apache Solr

Apache Solr är en open source plattform som är anpassad för små och stora organisationer, och företag. Det är en skalbar produkt som erbjuder distribuering och replikering av index. På så sätt kan man skapa effektiva söklösningar med hög tillgänglighet.

Solr är skriven i Java och fungerar som en sökmotor för fulltext. Kommunikation med Solr görs via ett REST-liknande API, svaren kan tas emot som XML, Json eller kommaseparerad text. Även om Solr är skriven i Java så kan man åstadkomma lösningar utan att skriva Javakod. Inställningar görs via konfigurationsfiler och tack vare ovan nämnda API:er kan man integrera utan direkta Java-kunskaper. Det finns dessutom ett webbgränssnitt som tillåter viss administration.

Tidpunkter

När och hur ofta ska data indexeras?

Index kan behöva uppdateras nära realtid alternativt via bakgrundsjobb som utförs en eller några gånger per dygn. Allt detta ställer krav på konnektorer och deras möjlighet att konfigureras. Deer Meadow har ett antal grundkonfigurationer som kan anpassas till kunders krav.

Metadata

Metadata bör koordineras till att ha gemensamma typer av värde. Datum tex bör hanteras på samma sätt. Det är nödvändigt för att kategorisering, relevansmodeller osv ska fungera i sökmotorn. Harmonisering kan införas i källan, men brukar vara en kostsam uppgift och kan därför överlåtas till indexeringskomponenterna.

Sökresultat leder oftast till en URL. Dvs användare ska kunna klicka på ett resultat för att kunna läsa mer. Man kan också tänka sig att skapa en fristående sida som genereras av indexerat material.

Sökmotor – datamodell & relevansmodell

Källornas metadata mappas till sökmotor-fält. Vilka i Apache Solr definieras av datatyp, språkstöd, tokenization etc. Detta ligger som grund för att kunna skapa relevansmodeller som används för att kunna söka transparent i allt material eller för att kunna söka i silos. De sista kan vara käll- eller områdes-beroende.