Graph Search Tools er et gratis, MIT-licenseret addon til Optimizely CMS 12 og 13, der lægger marketing-værktøjerne — pinnede resultater, synonymer og søgeanalyse — tilbage oven på Optimizely Graph.
I dag udgiver vi Graph Search Tools som open source — et gratis, MIT-licenseret addon, der lægger marketing-værktøjerne (pinnede resultater, synonymer og søgeanalyse) tilbage oven på Optimizely Graph. Samme NuGet-pakke virker på både Optimizely CMS 12 (.NET 8) og CMS 13 (.NET 10). Kildekoden ligger på GitHub.
Hvorfor vi byggede det
Optimizely Graph har afløst Search & Navigation som søgemotor på platformen. Graph er en god retrieval-motor. Det, der ikke fulgte med, er den marketing-vendte værktøjskasse, som Search & Navigation kom med:
- Ingen indbygget redaktionel visning af, hvad brugerne søger på
- Ingen førstepartsbrugerflade til pinnede resultater eller synonymer i CMS-skallen
- Intet dashboard over nulresultater eller lav-CTR-søgninger
Vi løb ind i hullet på en nordisk industrikunde, der flyttede deres ecommerce-søgning fra Elastic til Graph. Vi byggede de manglende værktøjer til den opgave og besluttede, at det rigtige var at lægge dem open source.
Vi er ikke det første community-projekt på området — OptiGraphExtensions har dækket synonymer og pinnede resultater på Optimizelys NuGet-feed siden 2025. Graph Search Tools griber problemet an fra marketingsiden: det viser dig hvilke søgninger brugerne faktisk laver (inklusive dem der ikke giver noget tilbage), lader dig teste en ændring mod din rigtige site-søgning uden at bede en udvikler om at redeploye, og binder de pins du opretter i editoren til den nøjagtige søgning dit site affyrer — så den pin du sætter op, er den pin dine brugere ser. De to projekter kan eksistere ved siden af hinanden; vælg det, der passer dit team.
Insights

Insights-dashboardet svarer på det spørgsmål, Graph ikke gør: hvad er det, folk skriver i søgefeltet, og hvor svigter det? Top-fraser, kandidater til nulresultater og lav-CTR-fraser — filtreret på kanal og locale i et 24-timers, 7-dages eller 30-dages vindue.
Det samme vinduessæt scoper Insights-fanen på hver Channel detail-side, hvor den deler tilstand med det Kontekstuelle preview.
Data kommer fra en åben ingest-beacon — din frontend kalder POST /api/telemetry/searchlog, når en søgning kører, og søgeloggen ligger i DDS. Ingen ekstern pipeline og ingen kontrakt med en tredjeparts-analyseleverandør. (Når I er klar, kan samme log forwardes til jeres analytics-stack — det indbyggede lager er kvik-start-vejen, ikke en blindgyde.)
Pinned results

Når algoritmen prioriterer forkert — lanceringsproduktet ligger ikke på første side, sæsonens helt er begravet — så pinner du resultatet. Pins-fanen viser alle aktive pins på tværs af tenanten med hits, CTR og nulresultater inline, så du kan opdage dækningshuller (upublicerede mål, udløbne pins, pins ingen klikker på) med et blik.
Det vigtige er, at pins scopes til kanalens pin-collection-nøgle. Det betyder, at en pin du opretter i CMS’et er garanteret at affyre i den live forespørgsel, frem for at forsvinde ned i en tenant-global collection, ingen læser.
Synonyms

Replacement- og equivalent-regler pr. locale, med en kolonne for aktivitet de seneste 30 dage og et komplet changelog. Synonymer i Graph ligger i en tenant-global pulje, så fladen er kanal-agnostisk by design. Aktivitetskolonnen gør det nemt at få øje på ubrugte regler — typisk det øjeblik, hvor du opdager at “kondisko → sneakers” allerede blev tilføjet af en eller anden for to år siden.
Kontekstuelt preview
Channel detail-siden indeholder et Kontekstuelt preview, der kører samme GraphQL-dokument, som din produktions-frontend affyrer. Du ændrer en pin, skriver søgningen, og ser resultatet rykke sig — ingen redeploy nødvendig.

Kom i gang
Graph Search Tools ligger på GitHub under MIT-licens. Installationsguide, channel-registrerings-API og den fulde konfigurationsreference står i readme’en.
Hvis du er ved at migrere fra Search & Navigation, eller er ved at vælge Graph til en ny build og vil have en hånd med relevansdelen, så tag fat.