Explorer 4 Christian

Vi holdt nylig et Meetup hvor vår Senior Software Engineer Christian Westgaard demonstrerte hvordan man bygger en søkeløsning på vår enterprise-søkeplattform Explorer, som nå er i sin fjerde iterasjon.

I dette tilhørende blogginnlegget dykker vi ned i en praktisk anvendelse av Enonic og Explorer-verktøyet, og viser hvordan man effektivt administrerer og søker i data, med et spesielt fokus på et bildatasett fra Finn.no.

Se videoen:

Explorer 4 – How to Build a Search Solution

Explorers rolle

Explorer har to hovedfunksjoner: å indeksere data på en strukturert måte for å muliggjøre avanserte søk. I denne demonstrasjonen vil vi hovedsakelig bruke Explorer til å utføre en nyttig oppgave: å opprette en søkbar database med biler.

Sett opp Enonic og Explorer

Prosessen starter med å sette opp Enonic. Etter å ha opprettet en sandkasse og installert Explorer direkte fra Market, er vi klare til å bruke dette kraftige verktøyet.

Opprett en dokumenttype og samling

Det første trinnet innebærer å definere hvilken data vi skal lagre og søke i. I dette tilfellet er det biler. Christian har opprettet en dokumenttype på norsk, som tillater automatisk feltgenerering, noe vi vil utforske senere.

Samtidig opprettes en samling for å lagre dataene, i hovedsak et standard XP-repositorium kalt “Biler”. Denne oppsettet er avgjørende for dataindekserings- og hentingsprosessen.

Fyll data gjennom REST-API

Det finnes to metoder for å fylle data: bygge en collector innenfor Enonic eller bruke et eksternt skript for å pushe data via et REST-API. For denne demoen har vi valgt sistnevnte, som krever å sette opp en API-nøkkel for sikkerhet.

REST-API-endepunktet er allsidig og støtter ulike operasjoner som CRUD for både bulk- og enkeltoppføringer.

Skriv en crawler og hent data

Christian utviklet en crawler ved hjelp av Node-moduler, spesielt ‘Surgeon’, som parser HTML til DOM-strukturer og tillater CSS-valg innenfor disse strukturene. Denne crawleren henter bildata fra Finn.no, og fanger detaljert informasjon som lenker, bilattributter og mer.

For å kjøre denne crawleren brukte Christian ‘bun’, et prosjekt som tar sikte på å løse vanlige JavaScript-problemer, og fungerer som et raskere alternativ til Node og NPM. Når skriptet kjører, henter det bildata fra Finn.no, som deretter reflekteres i Explorers voksende bilsamling.

Bruk data i Explorer

Explorer genererer automatisk felter i dokumenttypen basert på de inntatte dataene, og kategoriserer dem som strenger, tall, datoer osv. Denne funksjonen er essensiell for å vise informasjon på en nettside og søke i dataene.

Opprett et grensesnitt for søk

For å søke i dataene opprettes et grensesnitt i Explorer. Dette grensesnittet lar oss booste visse felter, noe som øker deres vekt i søkeresultatene. Ved hjelp av GraphQL kan vi utføre søk, aggregere og filtrere resultater basert på ulike parametere som bilmodeller, alder og drivstofftype.

Bygg en søkeklient med GraphQL-API

Søkeklienten, bygget med en enkel create-react-app, benytter GraphQL-API for funksjonaliteten. Dette API-et støtter funksjoner som highlighting, filtre og aggregeringer, som muliggjør raffinerte søk basert på spesifikke kriterier.

Explorer Demo Frontend Example

Forbedre søkefunksjonaliteten

Etter å ha lagt til grensesnittet i API-nøkkelen, kan vi ytterligere raffinere søkefunksjonaliteten. For eksempel kan vi sortere biler basert på pris per kilometer eller filtrere etter drivstofftype. Aggregeringer brukes til å bestemme aldersspennet på bilene og tilgjengelige drivstofftyper.

Paginering og avansert filtrering

Søkeklienten inkluderer også paginering, ved hjelp av GraphQL for å spesifisere antall resultater per side og startpunktet for hver side. Den kan også brukes til å opprette en “Last mer”-knapp.

Til slutt støtter klienten avansert filtrering. Disse funksjonene legger til et lag av bekvemmelighet og effektivitet til brukeropplevelsen.

Utforsk fordelene med Explorer i Enonic

Explorer utvider søkemulighetene til Enonic-plattformen utover dens interne data, og muliggjør høyst tilpassbare søk. Denne tilpasningsevnen er spesielt gunstig for aggregering og søk i ulike datatyper, som demonstrert i eksempelet Helsebiblioteket, som aggregerer innhold fra 50–70 forskjellige kilder.

Konklusjonen er at integrasjonen av Enonic med Explorer tilbyr en robust løsning for administrasjon og søk i forskjellige datasett. Enten det er for å aggregere data fra flere kilder eller forbedre søkefunksjonaliteten, viser denne kombinasjonen seg å være et kraftig verktøy i databehandling og -henting.

Utforsk Explorer på Enonic Market.

Slik fyller Enonic dine krav

Relaterte blogginnlegg

Få enda mer innsikt 🤓