Jobindsats – Detaljeret design – Søgning

Indholdsfortegnelse

Formål

Formålet med dette dokument er at beskrive søgefunktionaliteten, som er implementeret på Jobindsats.dk. Dokumentet skal give et fyldestgørende overblik over, hvilken logik der er grundlaget for søgefunktionaliteten, og hvordan resultater fremsøges og præsenteres på baggrund af brugerinputs.

Målgruppe

Dokumentet er tiltænkt udviklere, som skal vedligeholde søgefunktionaliteten, og foretage ændringer i kildekoden. Informationen tilgængelig i dokumentet er også relevant for andre tekniske stakeholders, der ønsker indgående kendskab til søgefunktionalitetens implementering.

Søgefunktionalitet

Brugergrænseflade

Topbar

Søgefunktionaliteten kan anvendes fra alle sider på Jobindsats, idet et simpelt søgefelt optræder i topbaren.

Søgeside

Selve søgesiden indeholder yderligere funktioner sammenlignet med søgefeltet i topbaren. Den kan tilgås ved at bruge søgeknappen til højre for søgefeltet i topbaren. Indholdet i søgefeltet i topbaren sendes med til søgesiden, hvor det fremgår i søgefeltet herpå. Hvis søgefeltet er tomt, fremsøges alle søgbare sider.

Som standard søges der på alle kategorier, og der vises 10 resultater per side. Vælges en anden værdi i ét af dropdown felterne, opdateres siden, og resultatet justeres tilsvarende.

Antallet af resultater kan som udgangspunkt sættes til 10, 25 eller 50 resultater per side.

De valgbare sidekategorier stemmer direkte overens med sektionerne i topbaren. Hvilke undersider, der kan fremsøges, er uddybet i afsnit .

Søgeresultat

Hvert søgeresultat vises på to linjer på følgende format:

For nyheder vises publiceringsdatoen i stedet for ændringsdatoen.

URL

Søgestreng, valg af kategori og valg af antal resultater opdateres i sidens URL. Det er derfor muligt at gemme en søgning ved at gemme den tilsvarende URL, og ligeledes dele en specifik søgning med andre personer gennem samme URL.

Søgbare sider

Det er muligt at fremsøge:

  • Elementsider

  • Temasider

  • Sektionssider

Uddybende forklaring af hvad disse sider dækker over kan findes i .

Søgbare felter

Hvis følgende felter indeholder ét eller flere af søgeordene i søgestrengen, vil siden de fremgår på optræde i søgeresultatet:

  • Sidenavn

  • Overskrift

  • Manchettekst

  • Brødtekst

  • Tags

Hvert felt har forskellig vægtning, nærmere beskrevet i afsnit Boosting.

Boosting

De søgbare felter er vægtet (boosted) forskelligt ud fra hårdt satte værdier i kildekoden. Deres vægtning er afgørende for, rækkefølgen hvori de fremsøgte resultater sorteres. Dvs. at et match på et højt vægtet felt vil bringe resultatet relativt længere op i søgeresultatet, sammenlignet med et match på et lavt vægtet felt.

Vægtningen (boosting) er indstillet således:

  • Sidenavn – 10x

  • Overskrift – 10x

  • Manchettekst – 3x

  • Brødtekst – 1x

  • Tags – 50x

Ved at vægte tags relativt højt, er det muligt at bruge tags til at fremhæve særligt relevante sider i søgeresultatet.

Synonymer

Der anvendes synonymer på udvalgte specialkarakterer, da den bagvedliggende søgefunktionalitet ikke understøtter nordiske bogstaver og andre specialtegn

Tegn

Synonym

Æ

Ae

Ø

O

Å

A

æ

ae

ø

o

å

a

-

[Mellemrum]

(

[Mellemrum]

)

[Mellemrum]

?

[Mellemrum]

.

[Mellemrum]

Sortering

Sorteringen af søgeresultaterne afhænger af, om søgefeltet er tomt.

Tomt søgefelt

Ved et tomt søgefelt foretages sorteringen udelukkende på baggrund af ændringsdato og -tidspunkt for de fremsøgte sider, som vil være sorteret fra nyeste til ældste. Dette gælder også nyheder, selvom den dato, der vises ud fra en nyhed er publiceringsdatoen. Der kan derfor være uoverensstemmelse mellem den viste dato og rækkefølgen for nyheder.

Ændring af dropdowns (kategori og sideantal) vil ikke påvirke sorteringen, så længe søgefeltet er tomt.

Udfyldt søgefelt

Når der er indhold i søgefeltet, vil sorteringen ske på baggrund af den score, der tildeles hver enkelt side, hvor et match findes. Sorteringen er i dette tilfælde således uafhængig af ændringsdatoen.

Scoren afhænger af, hvor mange gange hvert enkelt søgeord optræder i et søgbart felt på siden. Scoren justeres relativt ud fra den pålagte vægtning (boosting), nærmere beskrevet i afsnit Boosting.

Teknisk implementering

Søgningen er implementeret med Examine, og der er taget inspiration i følgende ressourcer, hvor yderligere indgående dokumentation er tilgængelig:

Examine er inbygget I Umbraco, og baseret på Lucene indeksering, som sørger for at lave et søgbart eksternt index over alle sider. Det er også Examine der tildeler hvert enkelt resultat den score, som bestemmer sorteringsrækkefølgen.

Manipulation af søgestreng

Brugerens input i søgefeltet gemmes som en streng, hvor alle tegn angivet i afsnittet 3.5 Synonymer erstattes med deres synonym. Herefter splittes strengen på mellemrum til et array, der bruges til at matche imod indholdet på alle søgbare sider.

Søgeside

Søgesiden er opbygget af cshtml, hvor hovedindholdet består af et lit element (ji-pagination-element.ts).

De anvendte dropdowns er custom komponenter (maaling-dropdown-element), der anvendes flere steder i løsningen, bl.a. på databank element siderne i mobilvisning. Ved ændring af valg i dropdowns, kommunikerer lit-elementet med cshtml elementet ved at opdatere URL’en tilsvarende den valgte værdi. Dette medfører at siden genindlæses, når valget i dropdown elementernes ændres.