Anzeige
Anzeige
Software & Entwicklung
Verpasse keine News mehr!

„indexed_search“ richtig konfigurieren und nutzen: Indexierte Suche mit TYPO3

Zu den wichtigsten Features einer Website zählt, dass sie durchsucht werden kann, damit der Besucher alle Inhalte auch vernünftig findet. Gerade bei großen Websites ist eine ordentlich konfigurierte Suche unabdingbar. Da die normale Suche dies nur rudimentär erledigt, zeigt Ihnen dieser Artikel, wie Sie die sehr leistungsfähige Such-Extension „indexed_search“ einbinden, konfigurieren und anpassen können.

8 Min.
Artikel merken
Anzeige
Anzeige

Seit der TYPO3-Version 3.8 ist „indexed_search“ eine so genannte System-Extension. Sie müssen die Extension also nicht erst aus dem TYPO3 Extension Repository (TER) herunterladen, sondern wählen sie aus der Liste der installierbaren Extensions aus. Gehen Sie hierzu links im Modulbereich auf „Tools > Ext Manager“ und wählen oben im Pull-Down-Menü den Eintrag „Install Extensions“.

Anzeige
Anzeige

Anschließend scrollen Sie zum Bereich „Frontend Plugins“ hinunter und klicken auf die Kugel mit dem „+“, um die Extension zu installieren. Im nächsten Fenster erscheint nun eine sehr lange Liste. Der erste Abschnitt legt die unbedingt benötigten Datenbanken an. Die weiteren Einträge beziehen sich grundsätzlich auf die Programme, mit deren Hilfe es möglich ist, mit „indexed_search“ auch Dokumente selbst zu durchsuchen. So können Sie beispielsweise in PDF-, Word- oder Excel-Dokumenten suchen. Die folgende Tabelle listet mögliche externe Programme für die Suche in Dokumenten.

Dokumenten- typ Name des externen Programms URL
PDF Xpdf http://www.foolabs.com/xpdf/download.html
ZIP unzip http://www.info-zip.org/UnZip.html
Word catdoc http://www.45.free.net/~vitus/software/catdoc/ (Linux)
http://www.webaugur.com/wares/files/ (Win)
Excel xlhtml http://chicago.sourceforge.net/xlhtml/
Powerpoint xlhtml http://chicago.sourceforge.net/xlhtml/
RTF UnRTF http://www.gnu.org/software/unrtf/unrtf.html

Geben Sie nach der Installation der Programme alle nötigen Pfade in den entsprechenden Feldern an. Wenn Sie eine fertig eingerichtete TYPO3-Umgebung benutzen, die bereits von Ihrem Hoster konfiguriert wurde, lassen Sie diesen Schritt komplett aus und gehen direkt nach unten. Klicken Sie auf „Update“, um die Extension zu installieren.

Anzeige
Anzeige

Legen Sie an einer beliebigen Stelle in Ihrem Seitenbaum eine neue Seite an und nennen Sie diese beispielsweise „Suche“. Der Seitentyp sollte auf „Nicht im Menü“ stehen, da Sie die Seite nicht direkt aufrufen können – es wird ja kein Suchwort übergeben. Auf der Seite legen Sie einen neuen Seiteninhalt vom Typ „Plugin“ an.

Anzeige
Anzeige

Als Erweiterung wählen Sie schließlich „Indexsuche“. Nun muss zunächst die Suchmaschine beziehungsweise der Indexer (der Mechanismus, der die Seiten in den Index einträgt) eingeschaltet werden. Dafür tragen Sie den folgenden TypoScript-Code in das Setup des Root-Template ein:

TYPOSCRIPT
page.config.index_enable = 1

Listing 1

Zum Schluss müssen Sie die Suche sinnvoll konfigurieren. Legen Sie dazu entweder ein Erweiterungs-Template an oder schreiben Sie zunächst den TypoScript-Code, den Sie über den Softlink am Ende dieses Artikels auf der T3N-Website oder auf der beiliegenden Heft-CD finden, ebenfalls in das Setup des Root-Template.

Anzeige
Anzeige

„indexed_search“ per TypoScript einbinden

Wenn Sie das Suchfeld flexibel auf den Seiten einbinden wollen, statt es per Content-Element zu positionieren und zudem beim Layout einen möglichst großen Gestaltungsfreiraum wünschen, ist die Extension „macina_searchbox“ [1] die richtige Wahl. Installieren Sie diese zunächst über den Extension Manager.

Sobald dies geschehen ist, können Sie die Suchbox entweder über ein Content-Element auf einer Seite einbinden (das muss aber auf jeder Seite geschehen) oder eben per TypoScript. Legen Sie dazu in Ihrem Template einen Marker namens „###SEARCHBOX###“ oder den Objektpfad (bei TemplaVoilà) „lib.searchbox“ an. Nun fügen Sie folgenden TypoScript-Code in den Setup-Bereich Ihres Root-Template ein:

TYPOSCRIPT
# Bei Verwendung von Markern
page.10.marks.SEARCHBOX < plugin.tx_macinasearchbox_pi1
# Bei Verwendung von Templavoilá
# lib.searchbox < plugin.tx_macinasearchbox_pi1
# Konfiguration der Searchbox
plugin.tx_macinasearchbox_pi1 {
	# ID der Seite, die das indexed-search plugin enthält 
	pidSearchpage = 77
	# Pfad zum Searchbox-Templatefile
	templateFile = fileadmin/searchbox.htm
}

Listing 2

Kopieren Sie das Template-File der Extension, das Sie unter dem Pfad „/typo3conf/ext/macina_searchbox/pi1/template.htm“ finden, als „searchbox.htm“ in Ihr „fileadmin-Verzeichnis“. Diese Template-Datei können Sie jetzt nach Ihren Wünschen anpassen. Welchen Marker Sie dabei verwenden dürfen, wird in der Datei ausführlich ganz am Anfang erklärt. Somit ist es auch möglich, eine völlig barrierefreie Suche zu realisieren.

Anzeige
Anzeige

Fehler in der Seitenindizierung beheben

Mitunter kommt es vor, dass Sie die Suche scheinbar fehlerfrei nach Anleitung eingebunden haben und trotzdem feststellen, dass sie nicht funktioniert, also keine Seiten indiziert werden.

In diesem Fall sollten Sie zunächst überprüfen, wie die Suchmaschine wirklich arbeitet. Gehen Sie hierzu im Modulbereich auf „Web > Info“ und wählen Sie aus dem Pull-Down-Menü ganz oben rechts den Eintrag „Indexsuche“ aus.

Nun klicken Sie im Seitenbaum auf Ihre Rootseite und erhalten eine Liste, ähnlich der in der folgenden Abbildung. Dabei gibt die Spalte die indizierte Seite an, daneben steht deren Titel, wiederum daneben die Version, die in der Suche enthalten ist. Wie Sie sehen, existiert die Seite „Home“ in dieser Suche sogar dreimal. Dies hängt damit zusammen, dass die Seite im Laufe der Zeit verändert und jedes Mal eine neue Version in der Datenbank gespeichert wurde. Unter „Indexed“ sehen Sie beispielsweise, welche Version (also an welchem Datum) indiziert wurde.

Anzeige
Anzeige

Mit dem kleinen Papierkorb-Symbol können Sie diejenigen Versionen löschen, die Sie überhaupt nicht mehr in Ihrem Index haben wollen. Mit dem Pull-Down-Menü unter „Indizierte Suche“ lassen sich die Ansicht und die Tiefe der Darstellungen (wieviele Ebenen angezeigt werden) einstellen.

Wenn Sie an dieser Stelle gar keine Anzeigen bekommen oder zwar generell eine Anzeige vorhanden ist, nur aber nicht von einer spezifischen Seite, dann liegt ein Problem bei der Indizierung vor. Generell geht „indexed_search“ so vor, dass eine Seite genau dann im Index landet, wenn diese in den Cache geschrieben wird. Dies wiederum bedeutet im Umkehrschluss, dass einerseits Seiten, die nicht gecached sind, auch nicht im Index landen.

Andererseits gelangt die Seite erst beim Caching in den Index. Um dies auszuschließen, loggen Sie sich am besten aus dem Backend aus und besuchen Sie die Seite als Besucher. Nachdem Sie eine Zeit lang hin und her geklickt haben, sollten Sie erneut überprüfen, ob die besuchten Seiten mittlerweile aufgenommen wurden. Ist dies nicht der Fall, hat offensichtlich das Caching nicht vernünftig funktioniert. Häufig sind Extensions der Übeltäter, da sich in diesen das Caching zentral ausschalten lässt.

Anzeige
Anzeige

Daher benötigen Sie eine Möglichkeit, um zu überprüfen, welche Extension dafür verantwortlich sein könnte. Durchsuchen Sie Ihr Extension-Verzeichnis „/typo3conf/ext/“ nach Dateien, die die Zeichenkette „$GLOBALS[‚TSFE‘]->set_no_cache();“ enthalten und kommentieren Sie diese mittels „//“ aus. Nun sollte Ihr Caching wieder funktionieren und damit auch die Indizierung. Falls Sie unter Linux arbeiten, können Sie auch wie folgt vorgehen:

  • Installieren Sie zunächst die Extension „mw_shell“ über den Extension-Manager.
  • Nach dem Neuladen des Backends finden Sie links im Modulbereich bei „Tools“ den Eintrag „Kommandozeile“.
  • Wählen Sie nun als Arbeitsverzeichnis „typo3conf“ aus.
  • Als Befehl geben Sie ein: „grep -r -n "set_no_cache()" *“
  • Anschließend erhalten Sie eine Liste all jener Dateien und Fundstellen, die „set_no_cache()“ enthalten.

Nun können Sie direkt in diese Datei gehen, beispielsweise über die Extension „Quixplorer“ (Extension Key: „quixplorer“) oder über Ihren FTP-Zugang. Kommentieren Sie die angegebenen Zeilen mittels „//“ aus.

Suche auf bestimmte Inhalte begrenzen

In der Grundeinstellung indiziert „indexed_search“ alles, was auf einer Seite zu finden ist. Tatsächlich ist die Suche sehr gierig und nimmt beinahe den gesamten Quelltext in den Index auf. So kann es passieren, dass Sie praktisch jede Seite als Suchergebnis erhalten, wenn Sie nach einem Begriff suchen, der im Menü auftaucht – schließlich ist das Menü ja auf jeder Seite eingebunden.

Anzeige
Anzeige

Um hier der Indizierungswut Einhalt zu gebieten, müssen Sie lediglich den für Sie wichtigen Inhalt (beispielsweise den Marker, der den Inhalt trägt) mit den folgenden zwei Kommentaren im Template einschließen und schon beschränkt die Suche ihren Bereich auf eben diesen:

TYPOSCRIPT
<!--TYPO3SEARCH_begin-->
... Inhalt ...
<!--TYPO3SEARCH_end-->

Listing 3

Beachten Sie aber, dass der Mechanismus nur funktioniert, wenn die Seiten neu in den Index kommen. Für alle Seiten, die dort bereits enthalten sind, klappt dies erst, wenn der Index-Eintrag (siehe Abschnitt „Fehler in der Seitenindizierung beheben“) vorher gelöscht wird.

Suche auf Teilbereiche der Website beschränken

Nicht immer sollen alle Unterseiten einer Website indiziert werden, beispielsweise bei der Suche in einem Intranet. Dies zu realisieren ist an sich recht einfach. Die große Anzahl an Fragen in den TYPO3-Mailinglisten zeigt allerdings, dass hier Aufklärungsbedarf besteht:

Anzeige
Anzeige
  • Legen Sie innerhalb des Teilbaums, den Sie alleine durchsuchbar halten wollen, eine eigene Suchseite an, die das Such-Plugin enthält (siehe folgende Abbildung).
  • Erstellen Sie ein Extension-Template auf dieser Seite.
  • Schreiben Sie folgenden TypoScript-Code in den „Setup“-Bereich des Template:
TYPOSCRIPT
plugin.tx_indexedsearch._DEFAULT_PI_VARS.sections = rl1_36

Listing 4

Dies spezifiziert die so genannte Sektion. Beachten Sie, dass der String mit „rl“ (in Kleinbuchstaben) anfängt. Anschließend folgt die Ebene, auf der die Suche beginnt. Im obigen Fall ist dies die Ebene 1, also eine Ebene unter der Root-Ebene. Die Root-Ebene selbst hätte die Nummerierung 0. Die Seite „Login/Logout“ beispielsweise hätte die Ebenennummer 3. Es folgt ein Unterstrich und dann die ID der Seite, ab welcher gesucht werden soll. In diesem Fall also die ID 36. Somit lautet der komplette String: „rl1_36“.

Meta-Tags nicht in die Suchergebnisse übernehmen

Leider gibt es keine einfache Lösung, um zu verhindern, dass Ihre Meta-Tags in den Suchergebnissen auftauchen. Das liegt daran, dass der Mechanismus für das Durchsuchen von Meta-Tags in der Crawler-Datei hart-kodiert ist. Die verantwortliche Datei finden Sie unter „/typo3/sysext/indexed_search/class.indexer.php“.

Fertigen Sie zunächst eine Sicherheitskopie der obigen Datei an. Suchen Sie nun die beiden folgenden Code-Zeilen in der Datei und kommentieren Sie diese aus, indem Sie ein „//“-Zeichen vor jede Zeile schreiben, anschließend speichern Sie die Datei.

PHP
if(stristr($meta[$i]['name'],'keywords')) ... 
if(stristr($meta[$i]['name'],'description')) ...

Listing 5

Sie können auch nur eine der beiden Zeilen auskommentieren. Die erste Zeile ist dafür zuständig, dass die Keywords indiziert werden, die zweite ist für die Description verantwortlich. Vergessen Sie nicht, dass die Einstellungen nur bei neuem Indizieren wirksam werden. Löschen Sie also zuerst alle Einträge aus dem Index und lassen Sie diese neu indizieren.

Suchergebnisse anpassen

Für die Darstellung der Suche ist ein HTML-Template mit dem Namen „indexed_search.tmpl“ zuständig, das Sie im Ordner „typo3/sysext/indexed_search/pi“ finden. Kopieren Sie zunächst diese Datei in einen eigenen Ordner unterhalb von „fileadmin/“ und fügen Sie folgenden TypoScript-Code in den Setup-Bereich Ihres Root-Template ein:

TYPOSCRIPT
plugin.tx_indexedsearch.templateFile = fileadmin/ indexed_search.tmpl

Listing 6

Das Template ist in fünf Abschnitte unterteilt: „TEMPLATE_SEARCH_FORM“ regelt, wie das Suchformular dargestellt wird. Der Abschnitt „TEMPLATE_RULES“ steuert die Darstellung der Suchregeln, sofern diese angezeigt werden. Die Links der Ergebnis-Abschnitte sind im Template in dem Bereich „TEMPLATE_RESULT_SECTION_LINKS“, die Überschriften dieser Abschnitte in TEMPLATE_SECTION_HEADER“ definiert. Die Suchergebnisse selbst befinden sich im letzten Abschnitt „TEMPLATE_RESULT_OUTPUT“. Die im Template verwendeten Marker sind meist selbsterklärend. Ansonsten kann die Funktion durch etwas experimentieren leicht herausgefunden werden.

Dieser Artikel ist ein Auszug aus folgendem Buch:
Titel: TYPO3 und TYPOScript – Kochbuch
Autoren: Alexander Ebner, Patrick Schuster
Verlag/ISBN: Hanser/978-3446410466
Preis/Umfang: 49,90 EUR/848 Seiten, Flexcover

Die Autoren

Alexander Ebner und Patrick Lobacher

Alexander Ebner arbeitet als System-Spezialist in einem bundesweiten Systemhaus sowie als freier Berater. Als Entwickler setzt er seit Jahren auf PHP/MySQL und lernte dadurch auch TYPO3 als CMS kennen und schätzen. Patrick Lobacher (geb. Schuster) ist freier Entwickler, Autor, Mitglied in der TYPO3 Association und berät seit 1996 Unternehmen beim Einsatz von Webtechnologien, seit 2002 zunehmend im TYPO3-Umfeld.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Kommentare (2)

Community-Richtlinien

Mateng, TYPO3-Heini

Gutes Tutorial – aber bitte verkleinert das Foto der Autoren auf der letzten Seite (1.535px × 1.152px).

jens_richter

Sehr gelungen, nur das Foto auf der letzen Seite fällt ein wenig aus dem Rahmen^^

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Kommentar abgeben

Melde dich an, um Kommentare schreiben und mit anderen Leser:innen und unseren Autor:innen diskutieren zu können.

Anmelden und kommentieren

Du hast noch keinen t3n-Account? Hier registrieren

Anzeige
Anzeige