Apache Solr + TYPO3: Enterprise-Suche mit Facetten, Autocomplete und Vektorsuche

Wie EXT:solr TYPO3 zur Enterprise-Suchplattform macht – von der Index Queue über facettierte Navigation bis zur semantischen Vektorsuche mit dem Solr-Modul „language-models“ (Text-to-Vector / knn_text_to_vector) ab Solr 9.8+.

Auf einen Blick

  • EXT:solr macht TYPO3 zur Enterprise-Suchplattform mit Volltextsuche, Facetten, Autocomplete und Highlighting – ohne externen SaaS-Dienst.
  • Die Index Queue synchronisiert Seiten, News, Produkte und beliebige Records automatisch mit dem Solr-Server – inklusive PSR-14 Events für eigene Extensions.
  • Seit Apache Solr 9.8 liefert das Solr-Modul language-models (in der Referenz oft „LLM“/Text-to-Vector) native Vektor- und Hybridsuche – direkt auf dem Solr-Server, ohne separate Vektor-Datenbank.
  • Hosting-Optionen reichen von DDEV lokal über Docker-Produktion bis zu hosted-solr.com als Managed Service.

Die eingebaute TYPO3-Suche durchsucht Seitentitel und Inhalt – für kleine Projekte ausreichend, bei Enterprise-Anforderungen ein Flaschenhals. Wenn Sie tausende Seiten, strukturierte Records und Dateien durchsuchbar machen müssen, brauchen Sie eine dedizierte Suchinfrastruktur. Apache Solr liefert genau das – und die Extension EXT:solr integriert diese Leistungsfähigkeit nahtlos in TYPO3.

Dieser Artikel zeigt, wie EXT:solr funktioniert, was seit Solr 9.8 mit dem Modul language-models (Embedding-/Vektor-Pipeline, z. B. knn_text_to_vector) möglich ist und wie Sie Enterprise-Suche in Ihrem Projekt umsetzen.


Inhaltsverzeichnis  


Was EXT:solr leistet  

EXT:solr verbindet TYPO3 mit einem Apache Solr Server und stellt eine vollständige Enterprise-Suchinfrastruktur bereit:

Volltextsuche

Seiten, News, Produkte und beliebige Records durchsuchbar – mit sprachspezifischem Stemming und Tokenisierung.

Facettierte Navigation

Filtern nach Kategorie, Datum, Typ oder jedem beliebigen Feld – wie in jedem modernen Online-Shop.

Autocomplete

Suchvorschläge in Echtzeit, noch bevor die Enter-Taste gedrückt wird. Mit Top-Ergebnis-Vorschau.

Architekturübersicht  

Das System besteht aus vier zusammenarbeitenden Komponenten:

EXT:solr Architektur: Von der Redaktion bis zum Suchergebnis

So funktioniert der Dokument-Lebenszyklus:

  1. Redakteur:innen erstellen oder bearbeiten Inhalte in TYPO3.
  2. Das Monitoring erkennt Änderungen über PSR-14 Events und schreibt einen Eintrag in die Index Queue.
  3. Ein Scheduler-Task verarbeitet die Queue und sendet Dokumente als JSON an den Solr-Server.
  4. Das Such-Plugin im Frontend sendet Abfragen an Solr und rendert Ergebnisse über Fluid-Templates.

Komponentenübersicht  

KomponentePaketZweckErforderlich?
EXT:solrapache-solr-for-typo3/solrKernintegration: Indexierung, Suche, Backend-ModulJa
EXT:tikaapache-solr-for-typo3/tikaTextextraktion aus PDFs, DOCX, XLSX (~1.200 Formate)Nur Dateisuche
EXT:solrfalFunding ExtensionFAL-Dateien in Solr indexierenNur Dateisuche
EXT:solrconsoleFunding ExtensionBackend-Konsole für Solr-VerwaltungOptional
EXT:solrdebugtoolsFunding ExtensionQuery-Debugging, Score-Analyse im FrontendEmpfohlen (dev)

Versionskompatibilität  

EXT:solrTYPO3Apache SolrConfigsetPHP
13.1.x (13.1.1)13.4 LTS9.10.1ext_solr_13_1_08.2 – 8.4
12.112.4 LTS9.10.1ext_solr_12_1_08.1 – 8.3
Hinweis zur Zeile TYPO3 12.4

Die Zeile 12.4 LTS dient dem Vergleich bei Migrationen von älteren Projekten. Für Neuentwicklung auf TYPO3 v14 zielt die Matrix auf 14.3 + EXT:solr 14.0; auf v13 LTS bleibt 13.4 + EXT:solr 13.1 der passende Stack.

Sicherheit: EXT:solr 13.1.x und EXT:tika

Die 13.1.x-Linie (aktuell u. a. 13.1.1) hält Solr 9.10.1 und schließt u. a. CVE-2025-54988, CVE-2026-22444 und CVE-2026-22022 – vor dem Livegang immer Release Notes und die Version Matrix prüfen. EXT:tika 13.1 setzt Apache Tika Server 3.2.3+ voraus und adressiert u. a. CVE-2025-54988 und CVE-2025-66516.

TYPO3 v14 und EXT:solr 14.0

Die Version Matrix nennt TYPO3 14.3 mit EXT:solr 14.0, Apache Solr 9.10.1 und dem Configset ext_solr_14_0_0. Solange auf Packagist noch keine stabilen 14.0.x‑Tags veröffentlicht sind, nutzen Teams häufig Composer-Zweige wie dev-main / 14.0.x-dev (oft mit minimum-stability: dev und prefer-stable: true):

Vor jedem Upgrade den aktuellen Stand auf Packagist und bei GitHub Releases prüfen und auf ^14.0 wechseln, sobald stabile Releases existieren. Ältere Integrations-Branches aus Diskussionen sind gegenüber veröffentlichter Matrix und Releases nachrangig .


Setup in unter 10 Minuten  

Installation via Composer  

Lokale Entwicklung mit DDEV  

Der schnellste Weg zur lokalen Solr-Instanz ist das offizielle DDEV-Addon :

Solr-Image-Version (DDEV)

Das Addon dokumentiert ein Standard-SOLR_BASE_IMAGE (z. B. solr:9.8). Die Version Matrix empfiehlt für TYPO3 13.4/14.x Solr 9.10.1. Für Parität mit Produktion: z. B. ddev dotenv set .ddev/.env.solr --solr-base-image="solr:9.10.1" und Solr-Service neu aufsetzen (siehe ddev-typo3-solr-README).

Konfigurieren Sie Cores in .ddev/typo3-solr/config.yaml:

Und in .ddev/config.yaml die Cores nach dem Start anlegen:

BefehlBeschreibung
ddev solrctl applyCores aus Konfiguration erstellen
ddev solrctl wipeAlle Cores löschen
ddev launch :8984Solr Admin UI im Browser öffnen
ddev logs -s typo3-solrSolr-Logdateien anzeigen

Docker-Produktion  

Für die Produktion liefert das offizielle Docker-Image vorkonfigurierte Cores für alle Sprachen:

Managed Hosting  

Zwei Optionen für alle, die keinen eigenen Solr-Server betreiben möchten:

hosted-solr.com

Managed Solr von dkd – den Maintainern von EXT:solr. Vorkonfigurierte Cores ab ca. 10 EUR/Monat (Plan „Small“, Stand Preisseite; zzgl. MwSt.-Hinweis laut Anbieter).

Mittwald

Managed Container-Plattform mit Solr-Service. Zugriff via mw container port-forward --port 8983.

TYPO3 Site-Konfiguration  

Fügen Sie die Verbindung in config/sites/<identifier>/config.yaml hinzu:

Umgebungskonfiguration

Solr-Zugangsdaten niemals hartcodieren. Verwenden Sie helhum/dotenv-connector für umgebungsspezifische .env-Dateien mit SOLR_HOST, SOLR_PORT und SOLR_CORE_*. Committen Sie .env.example, halten Sie .env gitignored.


Index Queue: Das Herzstück  

Die Index Queue ist der zentrale Mechanismus, über den TYPO3-Inhalte in Solr gelangen.

Dokument-Lebenszyklus: Von der Redaktion bis zum Suchergebnis

Seiten indexieren  

Seiten werden out of the box indexiert – keine zusätzliche Konfiguration nötig. Der Page-Indexer rendert die Seite und sendet den Inhalt an Solr.

Beliebige Records indexieren  

Jede TYPO3-Tabelle kann über TypoScript in den Index aufgenommen werden. Hier ein Beispiel für EXT:news:

Die drei Content-Objekte im Überblick:

Content-ObjektZweck
SOLR_CONTENTEntfernt HTML/RTE-Tags aus Feldinhalten
SOLR_RELATIONLöst Relationen auf (Kategorien, Tags), unterstützt multiValue = 1
SOLR_MULTIVALUETeilt kommaseparierte Felder in mehrere Werte auf

Dynamische Felder  

EXT:solr verwendet dynamische Feld-Suffixe, um eigene Felder ohne Schema-Änderung hinzuzufügen :

SuffixTypMulti?Beispiel
_stringSString (nicht analysiert)Neincategory_stringS
_stringMString (nicht analysiert)Jatags_stringM
_textSText (analysiert)Neindescription_textS
_intSIntegerNeinyear_intS
_dateSDatumNeinpublished_dateS
_floatSFloatNeinprice_floatS
_boolSBooleanNeinactive_boolS

Monitoring  

EXT:solr erkennt Record-Änderungen über PSR-14 Events. Zwei Modi stehen zur Verfügung:

  • Sofort (Standard): Änderungen werden direkt während der DataHandler-Operation verarbeitet.
  • Verzögert: Änderungen werden in der Event-Queue (tx_solr_eventqueue_item) gesammelt und von einem separaten Scheduler-Task verarbeitet.

Konfiguration über Extension Settings → monitoringType.

Site-Hash-Strategie  

Unter Admin Tools → Einstellungen → Erweiterungskonfiguration → solr steuert siteHashStrategy, wie der Site-Hash in Solr-Dokumenten gebildet wird. Für neue TYPO3-13.4+-Projekte ist siteHashStrategy = 1 (Site-Identifier) empfohlen; in älteren Defaults kann noch die domainbasierte Variante (0, deprecated) aktiv sein. Strategiewechsel erfordert ein vollständiges Neuindexieren.


Suche konfigurieren  

Basiskonfiguration  

Facettierte Navigation  

Facetten verwandeln die Suche in ein interaktives Filtererlebnis :

Verfügbare Facetten-Typen: options (Standard), queryGroup, hierarchy, dateRange, numericRange.

Autocomplete / Suggest  

jQuery-frei

Die eingebaute Suggest-Funktion nutzt standardmäßig jQuery. Für eine moderne, jQuery-freie Implementierung erlaubt EXT:solr die Integration eines eigenen Vanilla-JS-Frontends.

Highlighting & Rechtschreibprüfung  


Vektor- und Hybridsuche mit Solr 9.8+  

Seit Apache Solr 9.8 (Januar 2025) enthält Solr das Solr-Modul language-models (Text-to-Vector, Embedding-Pipeline; in älteren Texten oft „LLM-Modul“) , das semantische Suche auf dem Solr-Server ermöglicht – ohne separate Vektor-Datenbank, ohne zusätzliche Middleware. Klassen und Konfiguration folgen den Paketen org.apache.solr.languagemodels.* / solr.languagemodels.* (je nach Solr-Version bitte die Reference Guide prüfen).

Das LLM-Modul (Solr: „language-models“ / Text-to-Vector)  

Die Pipeline löst das Vocabulary-Mismatch-Problem der klassischen Keyword-Suche: Nutzer:innen formulieren ihre Frage anders als der Inhalt es tut. Texte und Suchanfragen werden in Vektoren umgewandelt, die semantische Ähnlichkeit abbilden.

Vektorsuche: Texte und Anfragen werden in Vektoren umgewandelt und per KNN verglichen

Unterstützte Embedding-Provider (via LangChain4j ):

AnbieterBeliebtes ModellDimensionen
OpenAItext-embedding-3-small1536
Mistral AImistral-embed1024
Cohereembed-v31024
HuggingFaceDiverse Open-Source-Modellevariabel

Hybridsuche: BM25 + Vektor  

Die stärkste Konfiguration kombiniert klassisches BM25-Ranking mit Vektor-Re-Ranking:

So profitieren Sie von exakten Keyword-Treffern und semantischer Ähnlichkeit.

Anwendungsfälle  

AnwendungsfallAnsatz
Intelligente Seitensucheknn_text_to_vector findet semantisch ähnliche Inhalte
Ähnliche ArtikelK-Nearest Neighbours auf dem Vektor eines Dokuments
Mehrsprachige BrückeEmbeddings matchen sprachübergreifend
FAQ-MatchingNutzer:innen-Fragen zu FAQ-Antworten trotz unterschiedlicher Formulierung zuordnen
RAG-RetrievalSolr als Retrieval-Schicht für LLM-gestützte Q&A-Systeme
Kosten und Datenschutz beachten

Die Vektorisierung läuft typischerweise über externe Embedding-APIs (Konfiguration im Solr-Modell-Store) – nicht vollständig „lokal“ ohne eigenes Modell. Berücksichtigen Sie API-Kosten, prüfen Sie Datenschutzanforderungen und planen Sie Fallbacks für API-Ausfälle ein.

EXT:solr und Vektoren

Native End-to-End-Unterstützung (Index Queue → Vektorfelder → Fluid) in EXT:solr entwickelt sich weiter. Für eigene Felder eignen sich PSR-14-Listener (z. B. BeforeDocumentsAreIndexedEvent) plus eigener Embedding-Service – siehe TYPO3-Solr/ext-solr.


Troubleshooting in 6 Schritten  

Wenn die Suche nicht funktioniert, liegt das Problem an einer von vier Stellen: Verbindung, Indexierung, Solr-Core oder Frontend. Gehen Sie systematisch vor.

Diagnose-Flowchart  

Systematisches Troubleshooting: Von der Verbindung bis zum Frontend

Häufige Fehler und Lösungen  

SymptomWahrscheinliche UrsacheLösung
"Suche nicht verfügbar"Solr-Verbindung falsch konfiguriertSite-Konfiguration prüfen, Verbindung initialisieren
Keine ErgebnisseSite-Hash-MismatchsiteHashStrategy prüfen, neu indexieren
Leere Index QueueTypoScript nicht geladenStatic Templates auf Root-Seite einbinden
Queue-Items werden nicht indexiertScheduler-Task fehlt"Index Queue Worker"-Task erstellen
Facetten nicht sichtbarfaceting = 0 oder leeres FeldFaceting aktivieren, Feldwerte prüfen
Docker: Permission deniedVolume-Ownership falschUID 8983 muss /var/solr besitzen
Jar-Ladefehler (Solr 9.8+)CVE-2025-24814 Migration nötigtypo3lib/ in Server-Root verschieben oder Docker 13.0.1+ nutzen

Logging aktivieren  

Für tiefere Diagnose aktivieren Sie TypoScript-Logging (nur dev/staging):

Und konfigurieren die Log-Datei in config/system/additional.php:

Logging in Produktion deaktivieren

Logging erzeugt erhebliches Datenvolumen und beeinträchtigt die Performance. Entfernen Sie plugin.tx_solr.logging und die writerConfiguration aus additional.php vor dem Go-Live.


PSR-14 Events für eigene Extensions  

EXT:solr feuert an zentralen Stellen PSR-14 Events , die Sie für eigene Logik nutzen können.

Benutzerdefinierte Felder zu Dokumenten hinzufügen  

Wichtige Events im Überblick  


TYPO3 v14: Änderungen für Entwickler  

Wenn Sie EXT:solr auf TYPO3 v14 / Fluid 5.0 bringen, sind laut SKILL und Upstream u. a. diese Punkte relevant:

  • Fluid 5.0: Such-Templates und Facetten-Partials streng typisierte ViewHelper-Argumente, keine underscore-präfixierten Template-Variablen – eigene Overrides prüfen.
  • TypoScriptFrontendController: Custom-Indexer oder Plugins, die $GLOBALS['TSFE'] nutzen, müssen auf Request-Attribute / die neue Frontend-Simulation migrieren.
  • TCA: ctrl.searchFields entfällt in v14 zugunsten von 'searchable' => true pro Spalte (betrifft v. a. Backend-Suche, nicht die Index-Queue-Feldmappings).

Produktions-Checkliste  

Configset-Version stimmt überein (ext_solr_13_1_0)
JVM-Speicher konfiguriert (SOLR_JAVA_MEM=-Xms512m -Xmx1g)
Solr nicht öffentlich erreichbar – Firewall oder Reverse Proxy
Scheduler-Task „Index Queue Worker" läuft regelmäßig
Logging deaktiviert in Produktion
Solr-Datenvolumen wird regelmäßig gesichert
CVE-Patches eingespielt (Solr 9.8+ Jar-Migration CVE-2025-24814, Tika Server 3.2.3+ für EXT:tika 13.1)
siteHashStrategy = 1 (site-identifier, empfohlen seit EXT:solr 13.0)
Ein Core pro Sprache mit sprachspezifischem Schema (z.B. core_de, core_en)

Fazit  

EXT:solr hebt die TYPO3-Suche auf Enterprise-Niveau – mit Facetten, Autocomplete, Highlighting und seit Solr 9.8 auch mit semantischer Vektorsuche. Die Extension ist ausgereift, wird aktiv von dkd Internet Service gepflegt und ist lokal mit DDEV in wenigen Minuten einsatzbereit.

Die drei zentralen Erkenntnisse:

  1. EXT:solr indexiert alles – Seiten, News, Produkte, Dateien. Die Index Queue und PSR-14 Events machen die Integration flexibel und erweiterbar.
  2. Vektorsuche auf dem Solr-Server – Das Modul language-models (Text-to-Vector, z. B. knn_text_to_vector) in Solr 9.8+ bringt semantische Suche auf den Solr-Kern; EXT:solr-Integration für alle Schritte prüfen Sie im aktuellen Release.
  3. Das Setup ist unkompliziert – DDEV-Addon installieren, Cores konfigurieren, Scheduler-Task erstellen. Fertig.

Wenn Sie entscheiden, ob die Standardsuche für Ihr Projekt reicht oder eine dedizierte Suchinfrastruktur nötig ist: Sobald Sie mehr als einige hundert Seiten haben, strukturierte Daten durchsuchbar machen oder Facetten benötigen – führt kein Weg an Solr vorbei.

Für Entwickler:innen

TYPO3 Solr Skill

Detaillierte Referenz für EXT:solr — Index Queue, Suche, Debugging, language-models/Vektorsuche. Hauptdatei SKILL.md; Ergänzungen SKILL-FRONTEND.md (z. B. Suggest ohne jQuery) und SKILL-SOLRFAL.md (Datei-Index). Open-Source Agent Skill für Claude, Cursor und VS Code.

Auf GitHub öffnen

Lassen Sie uns ueber Ihr Projekt sprechen

Standorte

  • Mattersburg
    Johann Nepomuk Bergerstraße 7/2/14
    7210 Mattersburg, Austria
  • Wien
    Ungargasse 64-66/3/404
    1030 Wien, Austria

Dieser Inhalt wurde teilweise mithilfe von KI erstellt.