Dokumentation der Extension indexed_search auf typo3.org zur Zeit leider nicht verfügbar.
1. Extension installieren
2. Extension konfigurieren
3. Suchseite anlegen und Plugin einfügen
4. TypoScript-Code für indexed_search hinzufügen
5. CSS Styles hinzufügen
6. Weitere Möglichkeiten
7. Verhindern, dass Meta-Tags in Suchergebnissen auftauchen
8. Kommentare zum Tutorial indexed_search
Seit TYPO3 Version 3.8 ist indexed_search eine sogenannte System-Extension. Das heißt, Sie müssen Sie nicht zuerst vom Extension-Repository downloaden, sondern können sie aus der Liste der installierbaren Extensions auswählen.
Klicken Sie auf Ext Manager, wählen Sie aus der Dropdown-Liste Available extensions to install aus und suchen Sie indexed_search in der Liste. Anschließend klicken Sie bitte auf das graue Symbol mit dem Pluszeichen um die Extension zu installieren (der grüne Punkt mit dem Minuszeichen bedeutet, daß indexed_search bereits installiert ist):

Im nächsten Schritt erscheint eine recht lange Liste. Ganz oben sehen Sie die Änderungen, die die Extension an der Datenbank durchführen muß. Diese zusätzlichen Tabellen müssen unbedingt angelegt werden. Entfernen Sie also die entsprechenden Häkchen nicht.
indexed_search unterstützt auch die Indexierung von externen Dokumenten (pdf, doc usw.) Hierzu muß besondere Software auf dem Webserver installiert sein. Dies wird in diesem Tutorial nicht behandelt. Wenn Sie diese Tools nicht installiert haben oder Sie nicht wissen worum es dabei geht, entfernen Sie die vorgegebenen Pfade /usr/local/bin aus den jeweiligen Feldern oder geben Sie den korrekten Pfad an. Es wird insgesamt siebenmal nach den Pfaden gefragt. Alle anderen Optionen lassen Sie bitte wie sie sind.

Legen Sie nun an einer Ihnen genehmen Stelle im Seitenbaum eine neue Seite an und nennen Sie diese zum Beispiel Suche.
Legen Sie einen neuen Seiteninhalt an. Im Assistenten wählen Sie bitte Allgemeines Plugin. Anschließend legen Sie fest, daß es sich um die Indexsuche handelt. Mehr ist an dieser Stelle nicht zu tun.


Als Erstes muss der Indexer eingeschaltet werden. Das erreichen Sie durch Hinzufügen der Zeile page.config.index_enable = 1 im Setup Ihres Haupttemplates (in den Downloadversionen ist das bereits erledigt).
Damit die Suche richtig funktioniert müssen Sie noch ein neues Erweiterungs-Template anlegen. Wählen Sie den Sys-Ordner Template Storage aus, klicken Sie auf das Ordner-Symbol und wählen Neu. Dem sich öffnenden Assistenten teilen Sie mit, daß Sie ein Template anlegen möchten. Diesem geben Sie den Titel +ext indexed_search.
Ins Setup des Templates kopieren Sie bitte den Code, den Sie hier finden. Die Kommentare dienen zur Erläuterung, was die einzelnen Optionen bewirken. Sie können die Kommentare (erkennbar am # am Zeilenanfang) löschen, falls Ihnen das zu unübersichtlich ist. Speichern nicht vergessen.
Ganz wichtig: Das Erweiterungs-Template ist nun zwar vorhanden, aber damit es auch benutzt wird, müssen Sie es noch einbinden. Gehen Sie vor, wie hier beschrieben und fügen Sie unter Include basis template das eben gespeicherte +ext indexed_search hinzu.



Da wir die CSS Styles zentral in der Datei content.css verwalten, haben wir mit der Zeile _CSS_DEFAULT_STYLE > im Erweiterungs-Template die Standard Styles von indexed_search gelöscht. Um die Suchergebnisse an Ihre Bedürfnisse anpassen zu können, müssen Sie folgenden Code am Ende Ihrer content.css einfügen (Sie können die Klassen natürlich ganz nach Ihren Wünschen anpassen):
/*******************************************
* Styles für Extension "tx_indexedsearch"
********************************************/
.tx-indexedsearch .tx-indexedsearch-searchbox INPUT.tx-indexedsearch-searchbox-button { width:100px; }
.tx-indexedsearch .tx-indexedsearch-searchbox INPUT.tx-indexedsearch-searchbox-sword { width:150px; }
.tx-indexedsearch .tx-indexedsearch-whatis P .tx-indexedsearch-sw { font-weight:bold; font-style:italic; }
.tx-indexedsearch .tx-indexedsearch-whatis { margin-top:10px; margin-bottom:5px; }
.tx-indexedsearch P.tx-indexedsearch-noresults { text-align:center; font-weight:bold; }
.tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-title { background:#eeeeee; }
.tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-title P { font-weight:bold; }
.tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-title P.tx-indexedsearch-percent { font-weight:normal; }
.tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-descr P { font-style:italic; }
.tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-descr P .tx-indexedsearch-redMarkup { }
.tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-info { background:#E0E7F5; }
.tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-secHead { margin-top:20px; margin-bottom:5px; }
.tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-secHead H2 { color:#006699; margin-top:0px; margin-bottom:0px; background:transparent; }
.tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-secHead TABLE { background:#cccccc; }
.tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-secHead TD { vertical-align:middle; }
.tx-indexedsearch .tx-indexedsearch-res .noResume { color : #666666; }
.tx-indexedsearch-sw, .csc-sword, .tx-indexedsearch-redMarkup { font-family: monospace; font-style: normal; padding:0 0.3em 0 0.3em; background:#ffff88; border: 1px #ccd solid; }
Die Suche sollte nun funktionieren. Die Möglichkeiten indexed_search zu konfigurieren sind damit aber nicht erschöpft.
So können Sie zum Beispiel eine Seite generell von der Suche ausschließen, indem Sie auf Seitentitel bearbeiten klicken und das Häkchen in die Checkbox Nicht suchen setzen.
Ich habe es auf dieser Website absichtlich nicht gemacht um den Effekt demonstrieren zu können. Wenn Sie zum Beispiel nach Downloads suchen, erhalten Sie sehr viele Suchergebnisse, weil das Wort Downloads im Menü vorkommt und damit auf jeder einzelnen Seite erscheint.
Um das zu vermeiden, können Sie HTML-Kommentare in die Designvorlage einfügen (z.B. standard.html). Die Kommentare lauten und
Wenn die Extension indexed_search diese Kommentare findet, wird nur innerhalb dieser beiden Kommentarzeilen gesucht, alles andere bleibt unberücksichtigt. Ein absolutes Muß für umfangreiche Websites.
So wird zum Beispiel der Inhalt der Spalte #col1 von der Suche ausgeschlossen (standard.html Teilbereich):
...
<!-- #col1: Erste Float-Spalte des Inhaltsbereiches -->
<div id="col1">
<!--TYPO3SEARCH_begin-->
<div id="col1_content" class="clearfix">
<h4>Spalte #col1</h4>
<p>Lorem ipsum dolor sit amet, ...</p>
</div>
<!--TYPO3SEARCH_end-->
</div>
<!-- #col1: - Ende -->
...Auch diese Anpassung habe ich hier zu Demonstrationszwecken nicht durchgeführt. Der Begriff YAML taucht auf dieser Website in den Meta-Tags auf. Wenn Sie nun nach YAML suchen, erhalten sie als Suchergebnis jede existierende Seite, weil in jeder Seite ja der Meta-Tag vorhanden ist.
Leider gibt es keine mir bekannte Möglichkeit, dieses Problem ohne Änderung des Quellcodes zu beseitigen (nur für erfahrene Anwender):
Öffnen Sie im Verzeichnis typo3/sysext/indexed_search/ die Datei class.indexer.php und suchen Sie folgende Zeile:
if(stristr($meta[$i]['name'],'keywords')) $contentArr['keywords'].=','.$meta[$i]['content']
(Zeile 603 bei Version 2.1.3 von indexed_search)
Erstellen Sie unbedingt eine Sicherheitskopie der Datei.
Versehen Sie die Zeile mit Kommentarzeichen, so daß es folgendermaßen aussieht und speichern Sie die Datei:
// if(stristr($meta[$i]['name'],'keywords')) $contentArr['keywords'].=','.$meta[$i]['content']
Nun werden die Meta-Tags nicht mehr in den Suchergebnissen berücksichtigt.