TYPO3: Crawler einrichten
Ich möchte Euch erklären, wie man die TYPO3 Extension Crawler einsetzen kann, um die Seiten für die TYPO3-Suche automatisch indizieren zu lassen.
Normaler weise erzeugt TYPO3 beim ersten Zugriff auf eine Seite den Index für diese Seite. Hat man viele Frontend Benutzergruppen, so muss TYPO3 für jede Kombination von Benutzergruppen die ein Frontend User haben kann, einen eigenen Index der Seite anlegen.
Der Crawler ermöglicht es nun, diesen Index automatisiert zu erzeugen.
- Als erstes installiert man die Extension Crawler.
- Danach legt man einen Backend User “_cli_crawler” an. Dieser wird benötigt, weil wir später per Cronjob den Crawler starten wollen.
- Nun konfiguriert man den Crawler mittels TSConfig. Dazu bearbeitet man die Seiteneigenschaften der obersten Seite und trägt in das Feld TSConfig folgendes ein:
#set up a crawl for users that arent logged in
tx_crawler.crawlerCfg.paramSets.test =
tx_crawler.crawlerCfg.paramSets.test {
cHash = 1
procInstrFilter = tx_indexedsearch_reindex, tx_indexedsearch_crawler
baseUrl = http://<meineDomain.de>/
}
#set up a crawl for users who have group id of 1
tx_crawler.crawlerCfg.paramSets.grp1 < tx_crawler.crawlerCfg.paramSets.test
tx_crawler.crawlerCfg.paramSets.grp1{
userGroups = 1
}
… usw. für jede Gruppenkombination
Damit ist der Crawler konfiguriert. Für eine Anleitung, was alles konfiguriert werden kann, schaut bitte in die Extension-Dokumentation.
Als nächstes werden wir zwei Skripte erstellen. Das erste Skript erstellt die “Crawler-Queue”, definiert also, was der Crawler alles tun soll. Dieses Skript werden wir z.B. einmal die Woche aufrufen. Das zweite Skript ist dafür da, die Queue abzuarbeiten. Dieses werden wir alle zwei Minuten starten.
Skript Queue erstellen:
php pfad/zum/htdocs/typo3/cli_dispatch.phpsh crawler_im 1049 -d 99 -proc tx_indexedsearch_reindex -n 1000 -o queue
Die Parameter bedeuten folgendes:
- crawler_im: Sorgt dafür, dass das Tool aufgerufen wird, dass die Queue erstellt
- 1049: Die Seiten-ID, aber der gecrawled werden soll
- -d 99: Die Rekursionsstiefe
- -proc tx_indexedsearch_reindex: Es soll indiziert werden
- -n 1000: Wieviele Einträge pro Minute sollen erzeugt werden
- -o queue: Es soll die Queue erzeugt werden
Skript für das Abarbeiten der Queue:
php pfad/zum/htdocs/typo3/cli_dispatch.phpsh crawler
Zum Schluss erstellen wir zwei Cron-Jobs:
- Aufrufen des ersten Skriptes z.B. einmal die Woche
- Aufrufen des zweiten Skriptes alle zwei Minuten
Vielleicht helfen Dir ja auch die folgenden TYPO3 Tipps?
Popularity: 16%
Werbung
2007-09-06 - 1.53 am
Danke für die Anleitung. Mir ist allerdings unklar wie die beiden “Script” ausschauen, die via Cronjob aufgerufen werden. Sind das einfache Textfiles mit beliebiger Dateiendung, oder php-scripts mit all den Includes (siehe unten) – aber wo kommt dann die Konfiguration – etwa crawler_im hin?
merci!
require(dirname(PATH_thisScript).’/conf.php’);
require(dirname(PATH_thisScript).’/’.$BACK_PATH.’init.php’);
require_once(t3lib_extMgm::extPath(‘crawler’).’class.tx_crawler_lib.php’);
$crawlerObj = t3lib_div::makeInstance(‘tx_crawler_lib’);
$crawlerObj->CLI_main();
2007-09-06 - 7.56 am
Hi!
Die Skripte existieren, wenn Du den Crawler installierst (TYPO3 4.x)
2007-10-19 - 2.02 pm
Hallo – danke für die Anleitung, die schon sehr geholfen hat. Ein problem bleibt aber noch: Im “crawler-log” (info -> site crawler) landen ja die abgearbeiteten jobs. Diese Liste wird von Tag zu Tag länger und die einzige Möglichkeit, diese wieder zu leeren ist per Hand im BE (“flush entries”).
Gibt es eine Möglichkeit, das crawler-log per Skript/cronjob zu leeren?
Danke nochmal für die Anleitung!
Daniel
2007-10-19 - 4.46 pm
Nee, leider nicht. Das ist noch ein großes Problem. Die Tabelle crawler_queue wird immer größer werden…
2007-10-22 - 11.47 pm
Ok – ich habe es jetzt so gemacht, dass noch ein weiteres Skript per cronjob aufgerufen wird, immer kurz bevor die queue neu erstellt wird. (berechtigungen müssen stimmen!)
#!/bin/bash
mysql –user=DERUSERNAME –password=DASPASSWORT –database=DERDATENBANKNAME -e ‘TRUNCATE TABLE tx_crawler_queue’
Damit wird diese Tabelle geleert und man muss das nicht von Hand machen.
Vielleicht hilft es jemandem, der es auch beunruhigend findet, wenn diese Tabelle immer voller wird…
2007-10-22 - 11.57 pm
Jo, gute Sache! Danke dafür!
2007-12-25 - 12.39 pm
hallo – ich habe mir erlaubt, diesen Eintrag hier zu machen: http://wiki.typo3.org/index.ph.....or_cronjob
Gelernt habe ich das hier, deshalb die Nachricht. Frohes Fest!
2007-12-25 - 2.52 pm
Klar, kein Problem! Du solltest noch einen Hinweis einbauen, dass das trunk die Tabelle komplett löscht. Der schönste Ansatz ist das nicht. Besser wäre es, wenn das Script, das die Queue abarbeitet auch den korrespondierenden Eintrag löschen würde. (Am besten konfigurierbar…)
2008-02-13 - 9.20 am
Hallo, bei mir funktioniert die Indexierrung mit dem Crawler soweit, auch bei tt_news-Datensätzen, ABER: wenn man eine News löscht, bleibt diese im Index erhalten.
Habe ich falsch konfiguriert (ich hab für die Indexierung von News nur eine “Indexierungseinstellung” in die Seite mit der News-Single-Ansicht gelegt)?
Oder soll ich den Suchindex jeden Tag (wie die Tabelle tx_crawler_queue) leeren? Wenn der Cronjob alle 2 Minuten drüber läuft, sollte die Seite ja nach 1 Stunde spätestens wieder komplett indexiert sein!?
2009-08-18 - 12.43 pm
Tolle Anleitung. Danke! In der crawler Version 2.1.0 muss der Backend User _cli_lowlevel heißen! Das spart viellecht dem einen oder anderen das Suchen :-)
2009-09-29 - 3.05 pm
Hallo – mit t3 4.2.8 und crawler 3.0 geht auf einmal das Skript zum Erzeugen der queue
/blabla/typo3/cli_dispatch.phpsh crawler_im 1 -d 99 -proc
tx_indexedsearch_reindex -n 1000 -o queue
nicht mehr:
ERROR: Option -proc was unknown to this
script!
(Options are: -s, –silent, -ss, -d depth, -o mode, -n number,
-conf
configurationkeys)
Hat jemand eine Idee?
2009-10-01 - 10.37 pm
Found the solution, see http://bugs.typo3.org/view.php?id=12097
2009-12-22 - 4.09 pm
Ist es möglich das Skript per externem Aufruf, z.B. http://www.cronjobs.de aufzurufen?
Bei directmail habe ich es geschafft den Cronjob zu konfigurieren, hier sehe vor lauter Bäume den Wald nicht!
2009-12-22 - 4.17 pm
Hi!
Sorry, keine Ahnung, weil ich cronjobs.de nicht kenne.
2009-12-22 - 5.04 pm
Es geht lediglich darum das Skript per http://-Zeile ausführen zu können…hat nichts mit cronjobs.de direct was zu tun…
2009-12-22 - 5.07 pm
Nee, ich sag mal, dass Du das cli_dispatch.phpsh nicht von außen ausführen kannst… Probier doch einfach mal…
2009-12-22 - 5.13 pm
ok…danke ich werde mich melden falls es ja funktioniert…
2010-03-01 - 1.16 pm
Ab Version 3.0 wird der Aufruf zum crawlen anders angegeben und zwar so:
./cli_dispatch.phpsh crawler_im 1 -d 99 -n 1000 -o queue -conf reindex
-proc fällt weg, dafür wird jetzt -conf genommen.
Ich hoffe das hilft einigen Leuten weiter…
2010-03-01 - 1.17 pm
sorry, das letzte hat er geschluckt:
- conf NAME DES DATENSATZES