Apache Solr und TYPO3: Eine sehr gute Suche für große Internetseiten

Wie die Erweiterung EXT:solr aus TYPO3 eine sehr gute Plattform für Suchen macht. Wir zeigen die Index Queue. Wir erklären Filter und die Vektorsuche ab Solr 9.8.

Auf einen Blick

  • EXT:solr macht TYPO3 zu einer sehr starken Plattform für die Suche. Sie hat eine Volltextsuche und Filter. Sie zeigt auch automatische Vorschläge an. Sie brauchen dafür keinen externen Dienst.
  • Die Index Queue ist eine Warteschlange. Sie verbindet Seiten und Texte automatisch mit dem Server von Solr. Das funktioniert auch für eigene Erweiterungen.
  • Seit Apache Solr 9.8 gibt es ein neues Modul. Es heißt language-models. Damit funktioniert die Vektorsuche direkt auf dem Server von Solr. Sie brauchen dafür keine eigene Datenbank für Vektoren.
  • Sie haben viele Möglichkeiten für das Hosting. Sie können DDEV lokal nutzen. Sie können Docker verwenden. Oder Sie nutzen hosted-solr.com als fertigen Dienst.

Die normale Suche von TYPO3 durchsucht Titel und Inhalte. Das reicht für kleine Projekte. Aber für sehr große Internetseiten ist diese Suche zu schwach. Vielleicht haben Sie tausende Seiten und Dateien. Dann brauchen Sie eine eigene Technik für die Suche. Apache Solr ist genau diese Technik. Die Erweiterung EXT:solr verbindet Apache Solr sehr gut mit TYPO3.

Dieser Artikel zeigt die Arbeit mit EXT:solr. Wir erklären das neue Modul language-models ab Solr 9.8. Dieses Modul ist für die Vektorsuche zuständig. Wir zeigen Ihnen den Aufbau einer sehr guten Suche.


Inhaltsverzeichnis  


Was EXT:solr macht  

EXT:solr verbindet TYPO3 mit einem Apache Solr Server . Das Programm stellt eine komplette Suche für große Firmen bereit:

Volltextsuche

Sie durchsuchen Seiten, Nachrichten und Produkte. Das Programm erkennt auch Wortstämme.

Filter und Facetten

Sie filtern Ergebnisse nach Kategorien. Sie kennen das von modernen Internetläden.

Automatische Vorschläge

Das System zeigt sofort Vorschläge an. Sie müssen dafür nicht die Entertaste drücken.

Aufbau der Suche  

Das System besteht aus 4 Teilen. Diese Teile arbeiten zusammen:

EXT:solr Aufbau: Von der Redaktion bis zum Suchergebnis

So funktioniert der Weg der Dokumente:

  1. Redakteure erstellen Inhalte in TYPO3.
  2. Die Kontrolle bemerkt die Änderung. Sie schreibt einen Eintrag in die Index Queue. Die Index Queue ist eine Warteschlange.
  3. Ein Scheduler Task arbeitet die Warteschlange ab. Er sendet die Daten als JSON an den Server von Solr.
  4. Das Suchplugin auf der Internetseite fragt den Server von Solr ab. Es zeigt die Ergebnisse an.

Übersicht der Teile  

KomponentePaketZweckNötig?
EXT:solrapache-solr-for-typo3/solrWichtige Funktionen für die Suche und den IndexJa
EXT:tikaapache-solr-for-typo3/tikaLiest Texte aus Dateien wie PDF ausNur für Dateien
EXT:solrfalFunding ExtensionBringt FAL Dateien in den IndexNur für Dateien
EXT:solrconsoleFunding ExtensionKonsole für die VerwaltungFreiwillig
EXT:solrdebugtoolsFunding ExtensionFindet Fehler bei der SucheEmpfohlen

Kompatibilität der Versionen  

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 hilft Ihnen beim Vergleich von älteren Projekten. Für neue Projekte mit TYPO3 v14 nutzen Sie 14.3 und EXT:solr 14.0. Für v13 LTS nutzen Sie 13.4 und EXT:solr 13.1.

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

Die Version 13.1.x schließt wichtige Sicherheitslücken. Prüfen Sie vor dem Start immer die Hinweise zur Version. Die Erweiterung EXT:tika 13.1 braucht Apache Tika Server 3.2.3+.

TYPO3 v14 und EXT:solr 14.0

Die Liste nennt TYPO3 14.3 mit EXT:solr 14.0. Vielleicht gibt es noch keine fertige Version als Download. Dann nutzen viele Entwickler bestimmte Entwicklerversionen:

Prüfen Sie vor einem Update immer den aktuellen Stand. Wechseln Sie auf eine fertige Version, sobald diese da ist .


Start in unter 10 Minuten  

Installation über Composer  

Lokale Arbeit mit DDEV  

Der schnellste Weg ist das DDEV Addon :

Solr Version in DDEV

Das Addon hat ein Standard-Image für Solr. Die Liste empfiehlt Solr 9.10.1 für TYPO3 13.4. Sie können diese Version leicht einstellen.

Sie stellen die Cores in der Datei .ddev/typo3-solr/config.yaml ein. Ein Core ist ein eigener Bereich in Solr:

Und in der Datei .ddev/config.yaml erstellen Sie die Cores:

BefehlBeschreibung
ddev solrctl applyCores aus der Datei erstellen
ddev solrctl wipeAlle Cores löschen
ddev launch :8984Verwaltung von Solr im Browser öffnen
ddev logs -s typo3-solrProtokolle von Solr anzeigen

Docker für den Livebetrieb  

Für den echten Betrieb gibt es ein fertiges Image für Docker . Dieses Image hat fertige Bereiche für alle Sprachen:

Betreutes Hosting  

Sie wollen keinen eigenen Solr Server betreiben? Hier sind zwei Möglichkeiten:

hosted-solr.com

Betreutes Hosting von dkd. Die Firma dkd baut auch EXT:solr. Es kostet ab etwa 10 Euro im Monat.

Mittwald

Betreute Plattform mit Container. Sie hat einen Solr Dienst.

Einstellung der Internetseite in TYPO3  

Fügen Sie die Verbindung in die Datei config.yaml ein:

Geheime Einstellungen

Speichern Sie niemals Passwörter offen im Text. Nutzen Sie das Paket helhum/dotenv-connector . Halten Sie die Datei .env geheim.


Index Queue: Die Warteschlange  

Die Index Queue ist eine Warteschlange. Sie ist sehr wichtig. TYPO3 sendet darüber Inhalte an Solr.

Weg der Dokumente: Von der Redaktion bis zum Suchergebnis

Seiten in den Index aufnehmen  

Das System nimmt Seiten sofort in den Index auf. Sie müssen dafür nichts weiter einstellen. Das Programm liest die Seite und sendet den Text an Solr.

Beliebige Datensätze aufnehmen  

Sie können jede Tabelle aus TYPO3 in den Index aufnehmen. Sie nutzen dafür TypoScript. Hier ist ein Beispiel für Nachrichten:

Die drei Objekte im Überblick:

ObjektZweck
SOLR_CONTENTEntfernt HTML Zeichen aus Texten
SOLR_RELATIONVerbindet Kategorien und Tags
SOLR_MULTIVALUETeilt Felder mit Kommas auf

Dynamische Felder  

EXT:solr nutzt Endungen für Felder. So können Sie eigene Felder ohne Änderung am Schema anlegen :

EndungTypMehrere Werte?Beispiel
_stringSZeichenNeincategory_stringS
_stringMZeichenJatags_stringM
_textSTextNeindescription_textS
_intSZahl (Integer)Neinyear_intS
_dateSDatumNeinpublished_dateS
_floatSZahl (Float)Neinprice_floatS
_boolSJa/NeinNeinactive_boolS

Kontrolle  

EXT:solr erkennt Änderungen an Datensätzen. Dafür nutzt es PSR-14 Events. Es gibt zwei Arten:

  • Sofort: Das System verarbeitet Änderungen sofort.
  • Verzögert: Das System sammelt Änderungen in einer Warteschlange. Ein eigenes Programm arbeitet diese Liste später ab.

Strategie für den Site-Hash  

Eine Einstellung regelt den Site-Hash in den Dokumenten. Für neue Projekte mit TYPO3 13.4 empfehlen wir die Einstellung siteHashStrategy = 1. Bei einer Änderung müssen Sie alles neu in den Index aufnehmen.


Suche einstellen  

Einfache Einstellungen  

Filter und Facetten  

Facetten sind Filter. Sie machen die Suche sehr einfach für den Nutzer :

Verfügbare Arten von Facetten: options, queryGroup, hierarchy, dateRange, numericRange.

Automatische Vorschläge  

Ohne jQuery

Die normalen Vorschläge nutzen jQuery. Sie können aber auch eigenes JavaScript ohne jQuery schreiben. EXT:solr erlaubt das.

Markierungen und Prüfung auf Fehler  


Vektorsuche und Hybridsuche ab Solr 9.8  

Seit Januar 2025 hat Solr ein neues Modul. Es heißt language-models. Damit ist eine semantische Suche direkt auf dem Solr Server möglich . Das bedeutet: Die Suche versteht den Sinn der Wörter. Sie brauchen dafür keine extra Datenbank für Vektoren.

Das Modul für Sprache  

Normale Suchen finden nur genaue Wörter. Nutzer suchen aber oft mit anderen Wörtern. Die neue Technik löst dieses Problem. Sie wandelt Texte in Vektoren um. Vektoren sind Zahlenreihen. Sie zeigen die Ähnlichkeit von Bedeutungen.

Vektorsuche: Texte und Fragen werden in Vektoren umgewandelt und verglichen

Anbieter für Vektoren (über LangChain4j ):

AnbieterModellDimensionen
OpenAItext-embedding-3-small1536
Mistral AImistral-embed1024
Cohereembed-v31024
HuggingFaceVerschiedene freie Modellevariabel

Gemischte Suche  

Die beste Einstellung mischt zwei Suchen. Sie sucht nach genauen Wörtern. Und sie sucht nach ähnlichen Bedeutungen mit Vektoren:

So erhalten Sie die besten Ergebnisse aus beiden Techniken.

Beispiele für die Nutzung  

BeispielAnsatz
Intelligente SeitensucheFindet Inhalte mit ähnlichem Sinn
Ähnliche ArtikelZeigt Artikel an, die gut dazu passen
Mehrsprachige BrückeVerbindet Inhalte über verschiedene Sprachen hinweg
FAQOrdnet Fragen von Nutzern den richtigen Antworten zu
RAGHilft bei Systemen mit künstlicher Intelligenz
Kosten und Datenschutz prüfen

Die Umwandlung in Vektoren läuft oft über externe Anbieter. Sie brauchen dafür eine Schnittstelle. Achten Sie auf die Kosten für diese Anbieter. Prüfen Sie auch den Datenschutz. Planen Sie Fehler bei den Anbietern ein.

EXT:solr und Vektoren

Die Unterstützung für Vektoren in EXT:solr wird immer besser. Für eigene Felder eignen sich Listener.


Fehler finden in 6 Schritten  

Wenn die Suche nicht geht, liegt der Fehler oft an vier Orten. Das sind Verbindung, Warteschlange, Solr Server oder Ansicht. Gehen Sie mit Plan vor.

Plan zur Diagnose  

Fehler finden: Von der Verbindung bis zur Ansicht

Bekannte Fehler und Lösungen  

FehlerMöglicher GrundLösung
"Suche nicht verfügbar"Verbindung zu Solr ist falschEinstellungen prüfen
Keine ErgebnisseSite-Hash passt nichtStrategie prüfen und neu aufnehmen
Leere Index QueueTypoScript fehltTypoScript auf der Hauptseite einfügen
Einträge bleiben stehenProgramm für den Index fehltAufgabe im Scheduler anlegen
Filter fehlenFilter sind aus oder das Feld ist leerFilter einschalten, Werte prüfen
Docker RechtefehlerRechte für den Ordner sind falschNutzer 8983 braucht die Rechte
Ladefehler bei Jar DateienEin Update fehltDateien verschieben oder neues Docker Image nutzen

Protokolle einschalten  

Für eine genaue Fehlersuche schalten Sie das Protokoll ein. Machen Sie das nur beim Entwickeln:

Und stellen Sie die Datei in config/system/additional.php ein:

Protokoll vor dem Start ausschalten

Schalten Sie das Protokoll vor dem echten Start aus. Das Protokoll macht das System sonst sehr langsam.


PSR-14 Events für eigene Erweiterungen  

EXT:solr sendet an wichtigen Stellen PSR-14 Events . Sie können diese Events für eigene Programme nutzen.

Eigene Felder anfügen  

Wichtige Events in der Übersicht  


TYPO3 v14: Änderungen für Entwickler  

Wenn Sie TYPO3 v14 nutzen, gibt es Änderungen:

  • Fluid 5.0: Vorlagen für die Suche haben nun strenge Regeln. Prüfen Sie Ihre eigenen Vorlagen.
  • TypoScriptFrontendController: Eigene Plugins müssen auf die neue Technik umstellen.
  • TCA: Die alte Sucheinstellung entfällt. Nutzen Sie nun 'searchable' => true pro Spalte.

Liste für den Livebetrieb  

Die Version vom Configset stimmt (ext_solr_13_1_0)
Der Speicher für Java ist eingestellt
Der Solr Server ist nicht offen erreichbar. Nutzen Sie eine Firewall
Das Programm für die Warteschlange läuft regelmäßig
Das Protokoll ist ausgeschaltet in Produktion
Sie sichern die Daten von Solr regelmäßig
Sie haben alle Sicherheitsupdates installiert
Die Einstellung für den Site-Hash ist auf 1
Sie haben einen Core für jede Sprache (z.B. core_de, core_en)

Fazit  

EXT:solr macht die Suche in TYPO3 sehr gut. Es bietet Filter, Vorschläge und eine Vektorsuche. Die Erweiterung läuft sehr stabil. Die Firma dkd Internet Service pflegt sie gut. Der Start mit DDEV dauert nur wenige Minuten.

Die 3 wichtigsten Punkte:

  1. EXT:solr nimmt alles in den Index auf. Es liest Seiten, Nachrichten und Dateien.
  2. Die Vektorsuche läuft auf dem Solr Server. Das Modul language-models bringt die semantische Suche direkt in Solr.
  3. Die Einrichtung ist einfach. Sie installieren das DDEV Addon. Sie stellen die Cores ein. Sie erstellen eine Aufgabe. Fertig.

Vielleicht überlegen Sie noch. Reicht die normale Suche? Sobald Sie viele Seiten oder Filter haben, brauchen Sie Solr.

Für Entwickler

TYPO3 Solr Wissen

Genaue Informationen für EXT:solr. Es geht um Index Queue, Suche und Vektorsuche. Das ist ein Hilfsmittel für Programme wie Claude oder VS Code.

Auf GitHub öffnen

Was ist Leichter Lesen?

A2

Diese Seite ist in Leichter Sprache geschrieben. Leichte Sprache hilft vielen Menschen, Texte besser zu verstehen. Die Sätze sind kurz. Schwierige Wörter werden erklärt.

Dieser Text wurde nach den Regeln der Leichten Sprache erstellt. Textniveau: A2 (Gemeinsamer Europäischer Referenzrahmen).

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.