Das hier ist eine kleine Schritt-für-Schritt Checkliste um zu prüfen, warum indexed_search nicht funktioniert.
1. Prüfe, ob das indexing eingeschaltet ist.
Im TSsetup: page.config.index_enable = 1
2. Prüfe, das Caching deaktiviert wurde.
Die Seiteninhalte werden nur indiziert, wenn sie auch in Typo3 gecached werden, also in eine der Tabellen cf_cache… wandern. Der absolute indexed_search-Killer ist folglich $GLOBALS["TSFE"]->set_no_cache();
Eingrenzung:
Diese Zeile
if ($GLOBALS['TSFE']->no_cache) echo “No Cache ist aktiviert!”;
als letzte Zeile in die index.php von Typo3 einfügen. Wenn der Text beim Aufruf der Seite ausgegeben wird, dann nacheinander folgende Sache prüfen:
- Ist unter den Seiteneigenschaften -> Verhalten -> Cache deaktiviert?
- Gibt es im TSsetup diese beiden Zeilen?
config.no_cache = 0
config.cache = 1 - Muss eine Extension speziell zum Cachen konfiguriert werden wie z.B. plugin.tt_news.allowCaching = 1
- Ist eine Extension auf der Seite im Einsatz, die im Quelltext set_no_cache(); aufruft?
3. Enthält der Quelltext die Such-Marker?
Alle Texte, die von der indexed_search durchsucht werden sollen müssen innerhalb dieser Marker sein:
<!–TYPO3SEARCH_begin–>
… dieser Text wird indiziert …
<!–TYPO3SEARCH_end–>
Typo3 Cache-Tabellen regelmäßig löschen
Zum Debuggen hilft mir auch dieses kleine PHP-Script, dass alle Cache-Tabellen und Indizierungen löscht. Eignet sich auch gut zum regelmäßigen Leeren der Cache-Tabellen in Typo3, falls z.B. eine Cache-Killer-Extension wie Kaldender “cal” im Einsatz ist: Dieses Script als Cron-Job (evtl. ohne die index_…-Tabellen) regelmäßig aufrufen…
<?php require_once('typo3conf/localconf.php'); $clean = array( 'cache_extensions', 'cache_imagesizes', 'cache_md5params', 'cache_treelist', 'cache_typo3temp_log', 'cf_cache_hash', 'cf_cache_hash_tags', 'cf_cache_pages', 'cf_cache_pagesection', 'cf_cache_pagesection', 'cf_cache_pagesection_tags', 'cf_cache_pages_tags', 'index_debug', 'index_fulltext', 'index_grlist', 'index_phash', 'index_rel', 'index_section', 'index_stat_search', 'index_stat_word', 'index_words' ); $link = mysql_connect($typo_db_host, $typo_db_username, $typo_db_password); mysql_select_db( $typo_db, $link ); if (!$link) die("Could not connect to DB"); foreach ($clean as $tbl) { $sql = "TRUNCATE $tbl;"; $result = mysql_query( $sql ); if (!$result) die("Could not execute query!".mysql_error()); } mysql_close($link); ?>