04.02.2011 TYPO3
t3blog - Teil 3
Site_Crawler und Indexed_Search
Hier beschreibe ich kurz, wie ich den site_crawler für das Indexieren dieser Site für die Volltextsuche konfiguriert habe. Das Indexieren über das Front-End habe ich bei indexed_search im Extension-Manager abgeschaltet, um eine bessere Kontrolle über das Indexieren zu haben. Ich benutze tlw. die Seiteneinstellungen und tlw. verschiedene Crawler Configurations. Ist eine Möglichkeit von vielen. Man könnte z.B. auch das FE-Indexieren aktiviert lassen und per Conditions im TS anpassen oder statt Crawler Configurations Indexierungseinstellungen verwenden. Das Ergebnis bleibt sich aber gleich, ist eher Geschmackssache.
Links sehen Sie den Seitenbaum dieser Site mit den UIDs der einzelnen Seiten. In den Seiteneinstellungen der Seiten 49 (Newsliste), 50 (Sitemap), 60 (Dankeseite des Formulars) und 55 (Suchergebnisseite) habe ich "nicht suchen" aktiviert, da diese Seiten nie im Suchergebnis auftauchen sollen. Dann habe ich vier Crawler Configurations erstellt, für alle normalen Seiten, für die News, die Referenzen und den Blog.
Hier sehen Sie die insgesamt vier Crawler Configurations für diese Site, die alle auf der Root-Seite abgespeichert sind.
Alle vier bekommen einen Namen und Re-indexing wird aktiviert. Die erste Configuration mit Namen "alles" (Abb. 1) durchsucht alle Seiten unter der Base url "http://www.3xn.de", bei denen "nicht suchen" und "nicht cachen" nicht aktiviert ist. Ausserdem werden die Seiten 45, 47 und 59 mit exclude pages ausgeschlossen, da sie eine eigene Konfiguration erhalten.
Die Seite 59 (News-Einzelansicht) erhält folgende Konfiguration mit Namen "news" (Abb. 2): &tx_ttnews[tt_news]=[_TABLE:tt_news;_PID:57]. Bei Pids only wird die New-Seite ausgewählt und Append cHash aktiviert.
Die Seite 45 (Referenzen-Einzelansicht) erhält folgende Konfiguration mit Namen "referenzen" (Abb. 3): &tx_ttnews[tt_news]=[_TABLE:tt_news;_PID:58]. Bei Pids only wird die Referenzen Detail-Seite ausgewählt und Append cHash aktiviert.
Die Seite 47 (Blog) erhält folgende Konfiguration mit Namen "blog" (Abb. 4): &tx_t3blog_pi1[blogList][showUid]=[_TABLE:tx_t3blog_post;_PID:47]. Bei Pids only wird die Blog-Seite ausgewählt und Append cHash aktiviert.
Jetzt müssen noch zwei cronjobs eingerichtet werden, einmal um die Batchdatei zu erstellen und einmal um die Batchdatei abzuarbeiten. Dazu einen neuen User mit dem Namen _cli_crawler einrichten und folgende cronjobs abspeichern (Natürlich an die eigenen Bedürfnisse anpassen).
00 00 * * * /usr/bin/php /mein/Pfad/typo3/cli_dispatch.phpsh crawler_im 42 -d 99 -n 1000 -o queue -conf alles,blog,referenzen,news
(Batchdatei um Mitternacht erstellen. 42 ist die uid der Root-Seite, -d 99 ist Anzahl der Levels, -n 1000 die max. Anzahl der Einträge, -o queue heisst Batchdatei erstellen und -conf listet die Configurations auf)
*/5 * * * * /usr/bin/php /mein/Pfad/typo3/cli_dispatch.phpsh crawler
(Alle fünf Minuten Batchdatei abarbeiten)
Versionen: TYPO3 4.4.6, t3blog 1.1.0, tt_news 3.0.1, indexed_search 2.12.0, site_crawler 3.2.0
- 4 Kommentar(e)








Danke für die Anleitung
Vielen Dank für die ausführliche Anleitung!
Ein Problem habe ich jedoch noch. Vielleicht haben Sie dazu ja ein passende Lösung.
Die Indexierung funktioniert bei mir einwandfrei. Wenn ich jedoch Newsartikel lösche oder auf hidden setze, werden diese nicht aus dem Index entfernt - auch nicht nach einer Reindexierung. Das führt dazu, dass die Newsartikel innerhalb der Suche noch ausgegeben werden. Der Link zur Detailansicht funktioniert dann aber logischerweise nicht. Der Nutzer sieht dann den Fehler "keine News ID übergeben".
Haben Sie hierzu Erfahrungen? Oder habe ich einfach etwas übersehen?
batchdatei
Hallo Martin, wenn der Seiten-Cache der Single-Ansichtsseite geleert ist und der erste cronjob einen neuen Queue erstellt hat, sollten nach der Re-Indexierung versteckte oder gelöschte News aus dem Suchindex verschwunden sein. Erstes lässt sich über Typoscript einrichten, Zweites entweder bei Bedarf händisch machen, Zeit zwischen den Ausführungen des ersten cronjobs verkürzen oder ein bisschen abwarten bzw. News nur kurz vor Ausführung des cronjobs bearbeiten.
Crawler berücksichtigt gelöscht Einträge nicht
Hallo Thorsten, danke für die Antwort. So hatte ich mir das auch gedacht. Problem an der Sache ist, dass gelöscht News (bei hidden verhält es sich anders) gar nicht erst wieder in die Queue aufgenommen werden. Ich habe mir die Funktion, welche die Configuration &tx_ttnews[tt_news]=[_TABLE ... verarbeitet (class.tx_crawler_lib.php -> function expandParameters) einmal näher angesehen. Dort wird mit dem Aufruf t3lib_BEfunc::deleteClause($subpartParams['_TABLE']) die Delete-Clause angehängt, welche verhindert, dass gelöscht Elemente in die Queue aufgenommen werden. Folglich werden gelöschte News nicht erneut gecrawled und verbleiben im Index. Nun könnte ich den Index jedes Mal vorher löschen, das dürfte aber nicht im Sinne des Erfinders sein...
Ich versuche das Problem mal noch weiter einzugrenzen. Komisch ist, dass ich in einigen Foren auf genau diese Fehlerbeschreibung gestoßen bin (teilweise sind das Einträge von 2008), ich konnte jedoch keine Lösung finden.
Funktioniert es denn bei Ihnen hier auf der Website einwandfrei?
Dritter cronjob
Hallo,
scheint tatsächlich ein dritter cronjob nötig zu sein, der vorab die cache-Tabellen leert:
http://www.typo3.net/forum/beitraege/thema/96265/
Habe auf meiner Site bisher noch keine News gelöscht, daher auch kein Problem gesehen.