logo hsb.horse

Architecture Decision Record

Einführungsrichtlinie für Site-Suche mit Pagefind

Pagefind für statische Volltextsuche einführen und lokalisierte Suchrouten mit Build-Integration standardisieren.

Angenommen #search #pagefind #architecture #i18n

Einführungsrichtlinie für Site-Suche mit Pagefind

Entscheidung

  • Pagefind wird als siteweite Suchmaschine eingeführt.
  • Suchrouten werden unter /search und /{lang}/search bereitgestellt; sprachspezifische Indizes werden über html[lang] gewählt.
  • Pagefind-Indexing wird in der Build-Pipeline direkt nach astro build verpflichtend.
  • Die Suchnavigation im Header verweist immer auf die Suchseite der aktuellen Locale.

Kontext

Die Website ist vollständig statisch und soll Volltextsuche ohne zusätzliche serverseitige Suchinfrastruktur anbieten. Da bereits mehrsprachige URLs (ja/en/ko/fr/de/pt) bereitgestellt werden, soll auch das Suchverhalten sprachspezifisch bleiben.

Optionen

  • Option A: Einen extern gehosteten Suchdienst verwenden
  • Option B: Eine eigene Such-API implementieren und betreiben
  • Option C: Pagefind mit statischer Indizierung einführen (gewählt)

Begründung

  • Pagefind läuft nach der statischen HTML-Generierung und passt zum Astro-Workflow.
  • Sprachabhängige Indexauswahl über html[lang] ist ohne Zusatzaufwand verfügbar.
  • Clientseitige Suche reduziert Betriebsaufwand und vermeidet zusätzliche Infrastrukturabhängigkeiten.

Konsequenzen

  • Produktions-Builds müssen dist/pagefind/ erzeugen.
  • Für die initiale UI wird @pagefind/default-ui eingesetzt; ein späterer Wechsel zu einer eigenen UI bleibt möglich.
  • Weitere Relevanzoptimierung (Exclude-Selektoren, Gewichtung, Metadatenanreicherung) erfolgt nach Beobachtung realer Suchnutzung.