Select Page

1. Extension installieren

Falls die Extension indexed_search noch nicht installiert ist, kannst du sie über Composer nachinstallieren:

ddev composer require typo3/cms-indexed-search:^13.4

2. TypoScript-Konfiguration

Lege eine Datei ext.indexed_search.typoscript in deinem TypoScript-Ordner (z. B. Configuration/TypoScript/) an. Darin konfigurierst du grundlegende Einstellungen für das Plugin:

plugin.tx_indexedsearch {
    settings {
        rootPidList = {$akoesitepackage.search.rootPidList}
        targetPid = {$akoesitepackage.search.targetPid}
    }
}

Anstatt feste Seiten-IDs (z. B. 123) zu setzen, empfiehlt es sich, Site Settings zu verwenden (siehe Schritt 6), um deine Konfiguration flexibler und mehrsprachigkeitstauglich zu machen.

3. HTML-Kommentare für die Indexierung

Damit der Inhalt einer Seite vom Indexer erkannt wird, muss der zu durchsuchende Bereich mit speziellen HTML-Kommentaren markiert werden. Füge dies in deinem Hauptlayout (z. B. Default.html) um den eigentlichen Content-Bereich ein:

<!--TYPO3SEARCH_begin-->
    <f:render section="Main"/>
<!--TYPO3SEARCH_end-->

4. Suchergebnisseite konfigurieren

Erstelle im TYPO3-Backend eine neue Seite, z. B. »Suchergebnisse« und füge dort ein Inhaltselement vom Typ Suchergebnisse (unter »Plug-Ins« → »Suche (indexed search)«) ein.

5. Suchformular im Template (z. B. Header)

Für die Integration eines Suchformulars im Header kannst du folgendes Snippet verwenden (z. B. für Bootstrap 5.3 angepasst):

<form id="search-form" name="searchForm" class="search-form ms-4" role="search" method="post" action="{f:uri.page(pageUid: settings.akoesitepackage.search.targetPid, additionalParams: '{tx_indexedsearch_pi2: {action: \'search\', controller: \'Search\'}}')}">
    <input class="form-control me-2" type="text" placeholder="Search" aria-label="Search" name="tx_indexedsearch_pi2[search][sword]" value="" />
    <button class="btn" type="submit"><i class="bi bi-search"></i></button>
</form>

Dieses Formular muss sich außerhalb des TYPO3SEARCH-Kommentarbereichs befinden, da es sonst ebenfalls indexiert würde.

6. Site Settings definieren

Statt feste Seiten-IDs zu verwenden, kannst du in deiner config.yaml im Sitepackage Einstellungen hinterlegen:

akoesitepackage:
  search:
    rootPidList: 1
    targetPid: 123

Diese Variablen nutzt du dann im TypoScript mit:

{$akoesitepackage.search.rootPidList}
{$akoesitepackage.search.targetPid}

7. Suchindex zurücksetzen

Gehe im TYPO3-Backend zu Admin Tools → Indexing, um den Index manuell zurückzusetzen.

Beim erneuten Laden von Seiten wird der Index automatisch aktualisiert. Das ist besonders hilfreich, wenn neue Inhalte erstellt oder Templates geändert wurden.

8. Eigene Partials und Templates

Du kannst die Templates von indexed_search überschreiben, z. B. um das Layout der Suchergebnisse anzupassen. Lege dazu eigene Partials an und verweise darauf im TypoScript:

plugin.tx_indexedsearch {
    view {
        partialRootPaths {
            100 = EXT:akoesitepackage/Resources/Private/Extensions/indexed_search/Partials/
        }
    }
}

Du kannst z. B. die Originaldateien aus EXT:indexed_search/Resources/Private/Partials/ kopieren und dann nach Wunsch anpassen.

9. Weiterführende Links & Tipps