Suche

Überblick

Suche V1 ist eine zentrale CMS-Funktion, die eine datenbankgestützte öffentliche Suche über veröffentlichte Seiteninhalte bereitstellt.

  • Die Suche indexiert nur veröffentlichte öffentliche Seiten.
  • Suchzeilen sind nach Site und Sprache (Locale) eingegrenzt.
  • Die Suche verwendet eine abgeleitete Tabelle public_search_index.
  • Die Suche benötigt keine externen Dienste wie Meilisearch, Algolia, Elasticsearch oder Scout.

Was indexiert wird

  • Titel, Slug und öffentliche Pfad-Metadaten der Seitenübersetzung
  • seiteneigene veröffentlichte Block-Bäume in aktivierten Slots
  • kompatible Shared-Slot-Inhalte, wie sie von der öffentlichen Seite konsumiert werden

Die Suche indexiert nicht:

  • Seiten im Entwurfsstatus, in Prüfung, archivierte oder verborgene interne Seiten
  • Shared-Slot-Quellseiten als eigenständige Suchergebnisse
  • deaktivierte Slots
  • Site-übergreifende, inaktive, Shell-inkompatible oder Slot-inkompatible Shared-Slot-Inhalte
  • nur für Administratoren sichtbare Beschriftungen, Blocktypnamen, CSS-Klassen oder rohe Einstellungs-Blobs als Suchinhalte
  • SEO-Beschreibungen, Keywords und Open-Graph-Metadaten der Seite als öffentliche durchsuchbare Textinhalte

Die Suche kann den Titel der Seitenübersetzung weiterhin verwenden, da dieser Teil der öffentlichen Seitenidentität ist; SEO-Überschreibungen der Seite werden in Suche V1 ansonsten jedoch als Head-Metadaten und nicht als durchsuchbarer Textinhalt behandelt.

Öffentliche Suchrouten

  • Standardsprache (Locale): /search?q=term
  • Nicht-Standardsprache (Locale): /{locale}/search?q=term
  • erweiterter JSON-Endpunkt: /search.json?q=term
  • erweiterter lokalisierter JSON-Endpunkt: /{locale}/search.json?q=term

Der aktuelle Host löst die Site auf, und das Routenpräfix löst die Sprache (Locale) auf – nach demselben öffentlichen Routing-Modell wie bei Seiten.

Öffentliche Such-UX

Die primäre öffentliche UX ist ein erweitertes Suchmodal, das über den Suchauslöser in Header Actions geöffnet wird, sofern JavaScript verfügbar ist.

  • der Auslöser bleibt ein normaler Link auf die /search-Route der aktuellen Sprache, sodass direkte Links, die Nutzung ohne JavaScript und der Barrierefreiheits-Fallback weiterhin funktionieren
  • die Modal-Ergebnisse werden von public_search_index gespeist
  • die Ergebnisse bleiben auf die aktuell aufgelöste Site und Sprache (Locale) eingegrenzt
  • die Modal-Beschreibung kann die aufgelöste Site-Bezeichnung nennen, damit Benutzer sehen, welche Site durchsucht wird
  • die Fallback-Seite /search bleibt die kanonische Erfahrung ohne JavaScript und für direkte Links

Das öffentliche Suchmodal verwendet ausschließlich die Site-Identität:

  • die Rangfolge der Site-Bezeichnung ist display_name, dann seo_title, dann name
  • die Projekt-Identität unter System -> Settings ist nur für Administratoren bestimmt und beeinflusst weder Texte noch Umfang der öffentlichen Suche

Der JSON-Endpunkt liefert sichere, strukturierte Nutzdaten für das Modal:

  • normalisierte query
  • count
  • minimum_length
  • results mit title, url und excerpt
  • no_results-Meldung, falls zutreffend
  • minimum_query_length-Meldung, falls zutreffend

Der Endpunkt gibt keine Administrationsdaten, keine Entwurfsinhalte und kein rohes, unsicheres HTML preis.

Suchformular-Block

Verwenden Sie den erstklassigen Block Search Form, um ein Suchformular in einem beliebigen öffentlichen Slot zu platzieren.

  • übersetzte Felder: barrierefreie Beschriftung, Platzhalter, Schaltflächenbeschriftung
  • gemeinsame Felder: Sichtbarkeit und Variante der Schaltfläche
  • Standardziel: die aufgelöste Suchroute der aktuellen Site
  • der aktuelle q-Wert bleibt erhalten, wenn der Block auf der Suchseite gerendert wird
  • er sendet weiterhin als normales GET-Formular an /search und wird nicht in den Modal-Ablauf gezwungen

Admin-Bildschirm

Super-Administratoren können den Suchstatus unter Admin -> Maintenance -> Search Rebuild einsehen.

Der Bildschirm zeigt:

  • Gesamtzahl der indexierten Zeilen und Zeitstempel der letzten Indexierung
  • Abdeckung nach Site
  • Abdeckung nach Sprache (Locale)
  • Aktion zum Neuaufbau

Rebuild-Befehl

Verwenden Sie den nicht-destruktiven Rebuild-Befehl, wenn Sie abgeleitete Suchzeilen neu erstellen müssen:

php artisan search:rebuild
php artisan search:rebuild --site=default
php artisan search:rebuild --locale=tr
php artisan search:rebuild --page=123

Der Befehl baut nur den angeforderten Suchbereich neu auf und verändert keine CMS-Inhalte.

Fehlt die Suchtabelle in der aktuellen Installation, führen Sie zuerst php artisan migrate aus, damit der abgeleitete Index erstellt werden kann.

Portabilitätsgrenze

public_search_index sind abgeleitete Laufzeitdaten.

  • sie können in Umgebungs-Backups und -Wiederherstellungen vorkommen, weil diese auf der gesamten Datenbank arbeiten
  • sie sind kein erforderlicher Site-Inhalt für die Export-/Import-Portabilität
  • Export-/Import-Workflows sollten Suchzeilen nach der Inhaltsübertragung bei Bedarf neu aufbauen

Sicherheit

Suche V1 erfordert keine destruktiven Befehle zum Zurücksetzen der Datenbank.

  • die Schutzmechanismen für destruktive Befehle bleiben bestehen
  • Rebuilds leeren und erstellen nur abgeleitete Suchzeilen im angeforderten Bereich neu