Die Extension crawler übernimmt das Indizieren von Seiten, damit diese später in indexed_search gefunden werden können. Die Konfiguration der Extension ist allerdings ein wenig tricky.
Um einfach Seiten zu indizieren, reicht folgendes im PageConfig der Rootseite. Da es sich dabei um TSconfig handelt, kann man da nicht auf Constants zugreifen und so z.B. den baseURL Wert verwenden, wenn man ihn da gesetzt hat. Der Begriff default ist von mir gewählt, man kann auch was anderes nehmen.
tx_crawler.crawlerCfg.paramSets {
default =
default {
procInstrFilter = tx_indexedsearch_reindex
baseUrl = http://www.domain.com/
}
}
Wenn man z.B. Inhalte indizieren möchte, die von einer Extension per Parameter ausgeliefert werden, braucht man folgendes:
tx_crawler.crawlerCfg.paramSets {
default =
[… s.o.]
tt_news = &tx_ttnews[tt_news]=[_TABLE:tt_news;_PID:123]
tt_news {
procInstrFilter = tx_indexedsearch_reindex
pidsOnly = 321
cHash = 1
baseUrl = http://www.domain.com/
}
}
In dieser Beispielkonfiguration werden tt_news Detailansichten indiziert. Die News werden dabei auf der Seite 123 gespeichert und die Ausgabe erfolgt auf der Seite 321. Der cHash muss an den Aufruf drangehängt werden, damit pro Detailseite eine Indexeintrag stattfindet. pidsOnly schränkt die Auswahl der Seite ein, ansonsten würde der Crawler alle Seiten mit diesen Parametern aufrufen, was meistens keinen Unterschied bewirken würde. Auf diese Art und Weise kann man auch die Ausgaben eigener Extension indizieren.
Und nun wird es tricky: wenn man Benutzer definiert hat, werden beim Suchen die bisher indizierten Seiten nicht gefunden, weil sie alle im Zustand „nicht eingeloggt“ indiziert worden sind. Dazu braucht man eine weitere Konfiguration, in der die gleichen Seiten im Zustand „eingeloggt“ indiziert werden. Ich machs mir einfach, ich kopiere die Konfguration per TS und hänge die Benutzergruppen dran.
tx_crawler.crawlerCfg.paramSets {
[…]
userPages_default < .default
userPages_default.userGroups = 1
adminPages_default < .default
adminPages_default.userGroups = 1,2
}
In diesem Beispiel gibt es zwei Benutzergruppen: „normale“ Benutzer (Gruppe 1), und Admin-Benutzer (gehören zu Gruppe 1 und 2). Damit in allen 3 Fällen (nicht eingeloggt, eingeloggt als normaler Benutzer, eingeloggt als Admin) immer die gleichen Ergebnisse gefunden werden, müssen die Seiten für alle drei Szenarien indiziert werden.
Wenn irgendwann eine neue Benutzergruppe dazukommt (z.B. 3), oder Benutzer angelegt werden, die nur zur Gruppe 2 gehören, müssen für alle Kombination separate(!) Konfigurationsabschnitte definiert werden, also: userGroups = 1,2,3 bzw. userGroups = 2
UPDATE:
Wenn der Crawler mal nicht crawlen sollte – weder per Kommandozeile noch sonst wie, kann es daran liegen, dass die „Prozessdatei“ immer noch im Temp-Verzeichnis liegt. Diese wird nicht gelöscht, wenn man den Prozess unerwartet abbricht. Also im Ordner typo3temp die Datei tx_crawler.proc suchen und löschen.
Neueste Kommentare