Skip to content

Elasticsearch

Elasticsearch treibt die seitenweite Volltextsuche. Plugins registrieren Such-Indizes — Blog-Artikel, Produkte, Seiten, PDFs — und der Scheduler fuettert Dokumente zeitgesteuert in Elasticsearch. Der Elasticsearch-Admin-Screen laesst dich pruefen, ob der Cluster erreichbar ist, was indiziert ist, einen Reindex anstossen und einen Index leeren, falls du neu beginnen willst.

Oeffne Einstellungen → Elasticsearch. Der Screen hat drei Tabs.

Elasticsearch-Admin mit Status, Indizes und Settings

Tab 1 — Status

Der Status-Tab zeigt die Cluster-Gesundheit auf einen Blick.

Status-Tab mit Verbunden, Cluster, Gesundheit, Knoten
KarteBedeutung
StatusVerbunden (gruen) oder Getrennt (rot).
ClusterCluster-Name, wie Elasticsearch ihn meldet.
Gesundheitgreen, yellow oder red. yellow heisst ueblicherweise nicht zugewiesene Replikas auf Einzel-Knoten-Entwicklung — ok. red heisst Daten fehlen oder Cluster ist kaputt.
KnotenAnzahl Knoten im Cluster.

Ist Status = Getrennt, zeigt die Karte den Fehler in einem roten Banner. Typische Ursachen: Host/Port falsch, API-Schluessel abgelaufen, Firewall blockt ausgehendes TLS.

Tab 2 — Indizes

Listet jeden im CMS registrierten Index. Jedes Plugin, das ein searchIndex/-Verzeichnis mitliefert, traegt einen oder mehrere Indizes bei.

Indizes-Liste mit Dokument-Anzahl, Groesse, Zuletzt indiziert, Neu indexieren und Loeschen

Pro Index siehst du:

SpalteZweck
NameInterner Identifier (z.B. blog, products, pages, pdf).
PluginWelches Plugin hat den Index registriert.
BeschreibungWas der Index abdeckt.
DokumenteWie viele Dokumente im Index liegen.
GroessePlattenbelegung laut Elasticsearch.
Zuletzt indiziertZeitstempel des letzten erfolgreichen Reindex.
ES aktiv / Nicht in ESOb Elasticsearch diesen Index tatsaechlich hat (gegen die CMS-Registrierung).

Eingebaute Indizes

IndexQuelle
blogBlog-Artikel — Titel, Untertitel, Body.
productsNative-Shop-Produkte (ohne E-Learning-Kurse).
pagesOeffentliche Seiten — per HTTP + DOMDocument gescraped.
pdfPDFs aus dem Media Manager — geparst mit smalot/pdfparser.

Reindex anstossen

Klick auf das Auffrischen-Icon Neu indexieren in einer Zeile. Setzt last_indexed_at des Index in der DB auf NULL. Der naechste Lauf des Elasticsearch-Reindex-Tasks (alle 60 Sekunden — siehe Task-Manager) nimmt die Anforderung auf und baut neu.

Reindex ist asynchron:

  • Der Task-Runner bearbeitet einen Index pro Lauf — eine Warteschlange mehrerer Indizes arbeitet sich in 1-pro-Minute ab.
  • Fortschritt wird nicht live angezeigt — Tab neu laden, um Dokumente und Zuletzt indiziert zu aktualisieren.
  • Bei grossen Indizes mehrere Minuten einplanen.

Index loeschen

Klick auf das Muell-Icon Löschen. Der Index wird aus Elasticsearch entfernt, das CMS liefert keine Suchergebnisse mehr fuer diese Domaene. Die Registrierung bleibt — ein spaeterer Reindex legt den leeren Index neu an und fuettert ihn.

Loeschung ist nicht weich

Loeschung leert die Elasticsearch-Seite sofort. Suchanfragen fuer diese Domaene liefern leer, bis der naechste Reindex fertig ist.

Tab 3 — Einstellungen

Verbindungsdaten zum Elasticsearch-Cluster.

FeldZweck
HostHostname oder IP des Clusters, z.B. search.example.com.
PortMeist 9200 fuer einfaches TLS, 443 fuer Cluster hinter Reverse-Proxy.
SSL verwendenHTTPS vs HTTP. HTTPS ist Norm.
API-SchluesselBase64-kodierter Elasticsearch-API-Schluessel, in Kibana generiert. AES-256-CBC verschluesselt gespeichert.
Index-PrefixNamespace fuer alle Indizes, z.B. mysite_. Vermeidet Kollisionen in geteilten Clustern.

Klick Speichern. Aenderungen greifen sofort beim naechsten API-Aufruf.

Verbindung testen

Der Verbunden-Badge im Status-Tab ist der Live-Test. Zeigt er nach Einstellungs-Aenderungen weiterhin Getrennt mit gleichem Fehler, sind die neuen Zugangsdaten auch falsch.

Selbstsignierte Zertifikate

Fuer Entwicklungs-Cluster mit selbstsignierten Zertifikaten: Der Client sendet mit CURLOPT_SSL_VERIFYPEER = false. Produktion muss ein echtes Zertifikat haben.

Wie der Such-Endpunkt arbeitet

Das Frontend trifft /api/elasticsearch/search?q=...&lang=...:

  1. Multi-Match ueber Felder mit Gewichtungen (title^5, h1^4, subtitle^3, h2^2.5, body^1).
  2. Sprach-Filter via initLanguages() aus dem CMS.
  3. Unscharfe Suche fuer Tippfehler.

Such-Verhalten wird nicht aus der Admin-UI konfiguriert — die Frontend-Widgets (das Elasticsearch-Uebersichts-Widget und das Suchleisten-Widget) exponieren die relevanten Knoepfe (Ergebnisse pro Seite, Filter, UX).

Haeufige Fehler

Status ist Getrennt mit "401 Unauthorized". API-Schluessel falsch oder abgelaufen. Neuen in Kibana generieren und in den Einstellungen eintragen.

Status ist Verbunden, Index zeigt "Nicht in ES". Index wurde nie gebaut. Klick Neu indexieren und warte auf den naechsten Scheduler-Tick.

Reindex zeigt "Letzter Lauf zu lange her", Dokumente bleibt 0. Wahrscheinlich feuert der Task-Runner-Cron nicht. Pruef Task-Manager → Systemstatus → Letzter Cron-Lauf.

"Connection refused" oder 30-Sekunden-Timeouts. Cluster nicht erreichbar oder ueberlastet. Firewall und Cluster-Gesundheit in Kibana pruefen.

Siehe auch

  • Task-Manager — die geplante Reindex-Aufgabe liegt dort.
  • Cache — nicht verwandt; Suche nutzt den Response-Cache nicht.
  • Frontend-Widgets: Elasticsearch-Uebersicht, Suchleiste — Teil der Pagebuilder-Widget-Bibliothek.