Apache Solr und TYPO3: Profi-Suche mit Filtern, Vorschlägen und Vektorsuche

Das Programm EXT:solr macht TYPO3 zu einer Profi-Suchmaschine. Die Warteschlange verbindet Seiten automatisch mit dem Server. Es gibt eine semantische Vektorsuche mit dem Modul llm ab Solr 9.8.

Auf einen Blick

  • Das Programm EXT:solr macht TYPO3 zu einer Profi-Suchmaschine. Es durchsucht ganzen Text. Es bietet Filter und Suchvorschläge. Sie brauchen keinen externen Dienst dafür.
  • Die Index Queue ist eine Warteschlange. Sie überträgt Seiten und Artikel automatisch an den Solr Server. Das schließt PSR-14 Events für eigene Programme ein.
  • Apache Solr 9.8 hat das Modul llm. Das Modul heißt ab Solr 10 language-models. Das Modul macht eine direkte Vektorsuche auf dem Server. Sie brauchen keine extra Datenbank.
  • Es gibt viele Möglichkeiten für das Hosting. Sie können DDEV lokal nutzen. Sie können Docker nutzen. Oder Sie nutzen hosted-solr.com als fertigen Dienst.

Die normale Suche von TYPO3 durchsucht Titel und Inhalt. Das reicht für kleine Internetseiten. Große Projekte brauchen mehr Leistung. Sie müssen oft tausende Seiten durchsuchen. Sie müssen auch Dateien durchsuchen. Dafür brauchen Sie eine eigene Technik für die Suche. Apache Solr macht genau das. Das Programm EXT:solr verbindet TYPO3 und Apache Solr sehr gut.

Dieser Text erklärt die Arbeit mit EXT:solr. Seit Solr 9.8 gibt es das Modul llm. Ab Solr 10 heißt es language-models. Das Modul macht eine Vektorsuche möglich. Vektorsuche bedeutet: Der Computer versteht den Sinn von Wörtern. Wir zeigen Ihnen den Einbau dieser Profi-Suche.


Inhaltsverzeichnis  


Was EXT:solr macht  

EXT:solr verbindet TYPO3 mit einem Apache Solr Server . Das ergibt eine vollständige Profi-Suche:

Suche im ganzen Text

Die Suche findet Text in Seiten und Artikeln. Die Suche versteht verschiedene Sprachen.

Filter Navigation

Sie können die Ergebnisse filtern. Sie können nach Kategorie oder Datum filtern. Das kennen Sie von Onlineshops.

Suchvorschläge

Das System macht Suchvorschläge in Echtzeit. Das passiert schon beim Tippen. Sie sehen sofort eine Vorschau.

Aufbau des Systems  

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

Weg der Daten: Von der Redaktion bis zum Suchergebnis

So funktioniert der Weg der Daten:

  1. Redakteure erstellen Inhalte in TYPO3.
  2. Ein Programmteil bemerkt diese Änderungen durch PSR-14 Events . Das Programm schreibt einen Eintrag in die Warteschlange.
  3. Ein Planerprogramm arbeitet die Warteschlange ab. Es sendet die Daten an den Solr Server.
  4. Das Suchprogramm auf der Internetseite fragt den Solr Server ab. Es zeigt die Ergebnisse an.

Übersicht der Programme  

ProgrammPaketAufgabePflicht?
EXT:solrapache-solr-for-typo3/solrHauptprogramm für die SucheJa
EXT:tikaapache-solr-for-typo3/tikaLiest Text aus PDF und WordNur Dateisuche
EXT:solrfalFunding ExtensionNimmt Dateien in die Suche aufNur Dateisuche
EXT:solrconsoleFunding ExtensionHilfsprogramm für die VerwaltungOptional
EXT:solrdebugtoolsFunding ExtensionHilfe bei FehlernWir empfehlen es

Passende 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 Version TYPO3 12.4

Die Zeile für 12.4 LTS hilft bei Wechseln von alten Projekten. Für neue Projekte nutzen Sie Version 14 oder Version 13.

Sicherheit bei EXT:solr und EXT:tika

Die Version 13.1.x nutzt Solr 9.10.1. Diese Version schließt bekannte Sicherheitslücken. Prüfen Sie immer die Versionen vor dem Start. Das Programm EXT:tika 13.1 braucht Apache Tika Server 3.2.3+.

TYPO3 Version 14 und EXT:solr 14.0

Die Liste für Versionen nennt TYPO3 14.3 zusammen mit EXT:solr 14.0. Manchmal gibt es noch keine fertige Version für Version 14. Dann nutzen Entwickler oft unfertige Versionen. Das sieht im Code so aus:

Prüfen Sie vor jedem Update den Stand der Version. Wechseln Sie auf eine fertige Version, sobald es diese gibt.


Setup in unter 10 Minuten  

Start mit Composer  

Lokale Arbeit mit DDEV  

Der schnellste Weg für lokale Tests ist das DDEV Addon :

Solr Image Version für DDEV

Das Addon nutzt eine Standardversion. Wir empfehlen Solr 9.10.1 für TYPO3 13.4. Sie können die Version über einen Befehl anpassen.

Sie stellen die Cores in dieser Datei ein .ddev/typo3-solr/config.yaml:

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

BefehlBeschreibung
ddev solrctl applyDas Programm erstellt Cores aus der Konfiguration.
ddev solrctl wipeDas Programm löscht alle Cores.
ddev launch :8984Öffnet die Solr Verwaltung im Browser.
ddev logs -s typo3-solrZeigt die Protokolle von Solr.

Docker Live System  

Für Live Systeme gibt es ein fertiges Docker Image . Es enthält fertige Cores für alle Sprachen:

Hosting Dienste  

Sie wollen keinen eigenen Server betreiben? Es gibt zwei einfache Möglichkeiten:

hosted-solr.com

Ein Dienst von den Machern von EXT:solr. Die Cores sind fertig eingerichtet. Es kostet ab etwa 10 Euro im Monat.

Mittwald

Eine Plattform mit einem Solr Dienst. Sie greifen über einen Befehl darauf zu.

TYPO3 Site Konfiguration  

Schreiben Sie die Verbindung in diese Datei config/sites/<identifier>/config.yaml:

Geheime Daten

Schreiben Sie Zugangsdaten nie direkt in den Code. Nutzen Sie das Programm helhum/dotenv-connector . Das Programm liest geheime Daten aus einer eigenen Datei.


Die Warteschlange: Das Herzstück  

Die Index Queue ist eine Warteschlange. Sie bringt Inhalte aus TYPO3 in den Solr Server.

Weg der Daten: Von der Redaktion bis zum Suchergebnis

Seiten aufnehmen  

Das Programm nimmt normale Seiten sofort auf. Sie müssen nichts extra einstellen. Das Programm liest die Seite und sendet den Text an Solr.

Beliebige Artikel aufnehmen  

Sie können jede TYPO3 Tabelle in die Suche aufnehmen. Sie machen das mit TypoScript. Hier ist ein Beispiel für EXT:news:

Die drei Inhalts-Objekte im Überblick:

ObjektAufgabe
SOLR_CONTENTDas Objekt entfernt HTML Zeichen aus dem Text.
SOLR_RELATIONDas Objekt löst Verknüpfungen auf.
SOLR_MULTIVALUEDas Objekt teilt Felder mit Kommas auf.

Dynamische Felder  

EXT:solr nutzt besondere Endungen für Felder. So können Sie eigene Felder einfach hinzufügen :

EndungTypMehrfach?Beispiel
_stringSText (ohne Analyse)Neincategory_stringS
_stringMText (ohne Analyse)Jatags_stringM
_textSText (mit Analyse)Neindescription_textS
_intSZahlNeinyear_intS
_dateSDatumNeinpublished_dateS
_floatSKommazahlNeinprice_floatS
_boolSWahr oder FalschNeinactive_boolS

Überprüfung  

EXT:solr bemerkt Änderungen an Einträgen. Es gibt zwei Arten dafür:

  • Sofort (Standard): Das System verarbeitet Änderungen sofort beim Speichern.
  • Verzögert: Das System sammelt Änderungen in einer Warteschlange. Ein Planerprogramm arbeitet die Liste später ab.

Sie stellen das in den Extension Settings ein. Der Punkt heißt monitoringType.

Hash Strategie  

Das System nutzt eine Site-Hash-Strategie. Das trennt Daten von verschiedenen Internetseiten. Wir empfehlen Strategie 1 für neue Projekte. Ein Wechsel der Strategie braucht einen neuen Suchlauf für alle Seiten.


Suche konfigurieren  

Grundlegende Einstellungen  

Filter Navigation  

Facetten sind Filter. Filter machen die Suche sehr einfach :

Verfügbare Arten für Filter: options (Standard), queryGroup, hierarchy, dateRange, numericRange.

Suchvorschläge  

Kein jQuery nötig

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

Hervorhebung und Rechtschreibung  


Vektor und Hybridsuche mit Solr 9.8  

Apache Solr 9.8 hat das Modul llm. Ab Solr 10 heißt das Modul language-models . Dieses Modul erlaubt eine semantische Suche direkt auf dem Server. Semantische Suche achtet auf den Sinn von Wörtern. Sie brauchen keine extra Datenbank dafür.

Das LLM Modul  

Das Modul löst ein bekanntes Problem. Nutzer suchen oft mit anderen Wörtern als der Text nutzt. Das System wandelt Texte und Suchanfragen in Vektoren um. Vektoren sind Zahlenreihen. Ähnliche Zahlenreihen bedeuten einen ähnlichen Sinn.

Vektorsuche: Texte und Anfragen werden als Zahlen verglichen.

Unterstützte Anbieter :

AnbieterModellGröße
OpenAItext-embedding-3-small1536
Mistral AImistral-embed1024
Cohereembed-v31024
HuggingFaceVerschiedene Modelleverschieden

Hybridsuche  

Die beste Einstellung kombiniert zwei Suchen. Sie kombiniert die normale Wortsuche mit der Vektorsuche:

So finden Sie genaue Wörter und ähnliche Bedeutungen.

Beispiele für die Nutzung  

BeispielLösung
Kluge SucheDas System findet Seiten mit ähnlichem Sinn.
Ähnliche ArtikelDas System vergleicht die Zahlenreihen der Artikel.
Sprachen verbindenDas System findet gleiche Inhalte in anderen Sprachen.
Fragen beantwortenDas System erkennt Fragen trotz anderer Wörter.
Hilfe für KISolr liefert Daten für KI Systeme.
Kosten und Datenschutz

Beachten Sie die Kosten und den Datenschutz. Die Vektoren kommen oft von externen Anbietern. Planen Sie Kosten für diese Dienste ein. Prüfen Sie die Regeln für den Datenschutz.

EXT:solr und Vektoren

Die Unterstützung für Vektoren in EXT:solr wird immer besser. Sie können eigene Programme für Vektoren schreiben.


Fehlersuche in 6 Schritten  

Manchmal funktioniert die Suche nicht. Es gibt vier häufige Gründe. Das sind: Verbindung, Warteschlange, Solr Core oder die Ansicht. Gehen Sie Schritt für Schritt vor.

Ablauf Plan  

Fehlersuche Schritt für Schritt

Häufige Fehler  

ProblemGrundLösung
Suche nicht verfügbarVerbindung falschSite Konfiguration prüfen.
Keine ErgebnisseFalscher HashHash Strategie prüfen und neu starten.
Leere WarteschlangeTypoScript fehltVorlagen in der Hauptseite laden.
Keine Daten in SolrPlanerprogramm fehltPlanerprogramm für die Warteschlange erstellen.
Filter fehlenFalsche EinstellungFilter in den Einstellungen aktivieren.
Docker FehlerFalsche RechteRechte für Ordner richtig setzen.
Fehler beim LadenSicherheitslücke in altem SolrAuf Solr 9.8 aktualisieren.

Protokoll einschalten  

Sie können ein genaues Protokoll einschalten. Machen Sie das nur auf Entwicklungs-Servern:

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

Protokoll im Live System

Achtung: Schalten Sie das Protokoll auf dem Live System aus. Das Protokoll macht sehr viele Daten. Das macht den Server langsam.


PSR-14 Events für eigene Programme  

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

Eigene Felder hinzufügen  

Wichtige Signale  


TYPO3 v14: Änderungen  

Sie nutzen TYPO3 Version 14? Dann gibt es wichtige Änderungen:

  • Fluid 5.0: Fluid 5.0 braucht genaue Datentypen. Prüfen Sie Ihre eigenen Vorlagen.
  • TypoScriptFrontendController: Einige alte Befehle fallen weg. Sie müssen neue Befehle für Abfragen nutzen.
  • TCA: Die Einstellung für Suchfelder ändert sich. Sie müssen jetzt searchable => true für jede Spalte setzen.

Live System Liste  

Configset Version passt zu EXT:solr.
Speicher für Java ist richtig eingestellt.
Solr Server ist nicht direkt erreichbar. Nutzen Sie eine Firewall .
Planerprogramm für die Warteschlange läuft regelmäßig.
Protokoll ist auf dem Live Server ausgeschaltet.
Sie machen regelmäßig ein Backup von den Daten.
Sie haben alle Sicherheits-Updates installiert.
Hash Strategie steht auf 1.
Sie haben einen Core für jede Sprache.

Fazit  

EXT:solr macht die TYPO3 Suche zu einer Profi-Suche. Sie bekommen Filter, Vorschläge und Vektorsuche. Die Firma dkd Internet Service pflegt das Programm sehr gut. Sie können das Programm mit DDEV sehr schnell lokal testen.

Die drei wichtigsten Punkte:

  1. EXT:solr durchsucht alles. Es durchsucht Seiten, Artikel und Dateien. Die Verbindung ist sehr anpassbar.
  2. Die Vektorsuche läuft auf dem Solr Server. Das Modul llm bringt semantische Suche in Solr.
  3. Die Einrichtung ist einfach. Sie installieren das DDEV Addon. Dann erstellen Sie den Planer. Danach ist alles fertig.

Reicht die normale Suche für Sie? Oder brauchen Sie eine Profi-Suche? Bei mehr als ein paar hundert Seiten brauchen Sie Solr. Das gilt auch für viele Dateien oder Filter.

Für Entwickler

TYPO3 Solr Wissen

Hier finden Sie genaue Informationen für Entwickler. Die Dokumentation erklärt die Warteschlange und die Vektorsuche. Es gibt auch Tipps für Vorschläge ohne jQuery.

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).

Sprechen wir über Ihr Projekt.

Standorte

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

Ein Teil von diesem Inhalt wurde mit KI gemacht.