Indexing Configurations
Ich habe nun die Indexing Configurations entdeckt. Besser ist das. Die News aus der Konfiguration (im Gegensatz zu der Variante unten) rausnehmen. Der Crawler verwendet die Kombination von Indexing Configurations (Auswahl der Seiten) und der crawlerConfig (Auswahl der Parameter Language z.B.):
#--------------------------------
# Indexed Search (Crawler)
#--------------------------------
tx_crawler.crawlerCfg.paramSets {
# User in no group
language = &L=[|_TABLE:pages_language_overlay;_FIELD:sys_language_uid]
language.procInstrFilter = tx_indexedsearch_reindex
language.baseUrl = localhost/developer/
# User in group 1
group1 = &L=[|_TABLE:pages_language_overlay;_FIELD:sys_language_uid]
group1.procInstrFilter = tx_indexedsearch_reindex
group1.baseUrl = localhost/developer/
group1.userGroups = 1
}
Dafür dann eine Indexing Configuration anlegen
1.) In einem Systemordner
2.) Auf der Seite die News Details anzeigt:
Hier die Texte zum kopieren:
&tx_ttnews[tt_news]=###UID###"
title,subtitle,bodytext
..und der geschedulte CLI Job sollte alles Indizieren.
Nur 3 Ebenen
Das nervt: Also in typo3/sysext/indexed_search/locallang_db.xml einfügen:
<label index="index_config.depth.I.999">Infinite</label>
und in tca.php:
Array('LLL:EXT:indexed_search/locallang_db.php:index_config.depth.I.999', '999'),
..und schon kann man "unendlich" für die Rekursion auswählen (infinite).
FE Indexing ausschalten
Dies sollte man tun um keine doppelten Einträge zu bekommen. Extension Manager -> indexed Search
useCrawlerForExternalFiles = 1
disableFrontendIndexing = 1
Crawler Konfiguration (schlechtere Variante)
Dies hier ist die erste Variante die ich versucht habe - alles per crawlerConfig. Besser ist die Zweite (siehe oben).
Config
Folgendes in das TS der Root Seite aufnehmen:
#--------------------------------
# Indexed Search (Crawler)
#--------------------------------
tx_crawler.crawlerCfg.paramSets {
# User in no group
language = &L=[|_TABLE:pages_language_overlay;_FIELD:sys_language_uid]
language.procInstrFilter = tx_indexedsearch_reindex, tx_indexedsearch_crawler
language.baseUrl = localhost/developer/
# User in group 1
group1 = &L=[|_TABLE:pages_language_overlay;_FIELD:sys_language_uid]
group1.procInstrFilter = tx_indexedsearch_reindex, tx_indexedsearch_crawler
group1.baseUrl = localhost/developer/
group1.userGroups = 1
# User in group 2
group2 = &L=[|_TABLE:pages_language_overlay;_FIELD:sys_language_uid]
group2.procInstrFilter = tx_indexedsearch_reindex, tx_indexedsearch_crawler
group2.baseUrl = localhost/developer/
group2.userGroups = 2
# User in group 3
group3 = &L=[|_TABLE:pages_language_overlay;_FIELD:sys_language_uid]
group3.procInstrFilter = tx_indexedsearch_reindex, tx_indexedsearch_crawler
group3.baseUrl = localhost/developer/
group3.userGroups = 3
# User in group 2 and 3
group23 = &L=[|_TABLE:pages_language_overlay;_FIELD:sys_language_uid]
group23.procInstrFilter = tx_indexedsearch_reindex, tx_indexedsearch_crawler
group23.baseUrl = localhost/developer/
group23.userGroups = 2,3
# --- News ----
# User in no group
news_language = &tx_ttnews[tt_news]=[_TABLE:tt_news;_PID:134;_FIELD:uid] &L=[|_TABLE:pages_language_overlay;_FIELD:sys_language_uid]
news_language.procInstrFilter = tx_indexedsearch_reindex, tx_indexedsearch_crawler
news_language.baseUrl = localhost/developer/
# User in group 1
news_group1 = &tx_ttnews[tt_news]=[_TABLE:tt_news;_PID:134;_FIELD:uid] &L=[|_TABLE:pages_language_overlay;_FIELD:sys_language_uid]
news_group1.procInstrFilter = tx_indexedsearch_reindex, tx_indexedsearch_crawler
news_group1.baseUrl = localhost/developer/
news_group1.userGroups =1
news_group1.pidsOnly = 138
news_group1.cHash = 1
# User in group 2
news_group2 = &tx_ttnews[tt_news]=[_TABLE:tt_news;_PID:134;_FIELD:uid] &L=[|_TABLE:pages_language_overlay;_FIELD:sys_language_uid]
news_group2.procInstrFilter = tx_indexedsearch_reindex, tx_indexedsearch_crawler
news_group2.baseUrl = localhost/developer/
news_group2.userGroups = 2
news_group2.pidsOnly = 138
news_group2.cHash = 1
# User in group 3
news_group3 = &tx_ttnews[tt_news]=[_TABLE:tt_news;_PID:134;_FIELD:uid] &L=[|_TABLE:pages_language_overlay;_FIELD:sys_language_uid]
news_group3.procInstrFilter = tx_indexedsearch_reindex, tx_indexedsearch_crawler
news_group3.baseUrl = localhost/developer/
news_group3.userGroups = 3
news_group3.pidsOnly = 138
news_group3.cHash = 1
# User in group 2 and 3
news_group23 = &tx_ttnews[tt_news]=[_TABLE:tt_news;_PID:134;_FIELD:uid] &L=[|_TABLE:pages_language_overlay;_FIELD:sys_language_uid]
news_group23.procInstrFilter = tx_indexedsearch_reindex, tx_indexedsearch_crawler
news_group23.baseUrl = localhost/developer/
news_group23.userGroups = 2,3
news_group23.pidsOnly = 138
news_group4.cHash = 1
}
Einen User im Backend anlegen namens _cli_crawler mit beliebigen Passwort und ohne Zugriffsrechte.
Erklärung
Das Indizieren muss für alle Gruppen Kombinationen konfiguriert werden die möglich sind. Andernfalls wird ein User der in den gruppen 1,2,3 ist Dokumente nicht finden die von einem User indiziert wurden der in den Gruppen 1,2 ist.
Scheduling
Crontab
Hinzufügen eines crontab job Eintrags:
Deprecated
Der Backend user _cli_crawler muss existieren
* * * * * root /Users/.../typo3conf/ext/crawler/cli/crawler_cli.phpsh
Oder besser mit cli_dispatch.phpsh:
Der Backend user _cli_lowlevel muss existieren
* * * * * root /Users/.../typo3/cli_dispatch.phpsh crawler
OSX Lauchd
Hinzufügen eines Eintrags zu /Library/LaunchDaemons (hier für cli_dispatch.phpsh)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<true/>
<key>Label</key>
<string>Typo3 Indexing</string>
<key>ProgramArguments</key>
<array>
<string>/.../htdocs/developer/typo3/cli_dispatch.phpsh</string>
<string>crawler</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>60</integer>
</dict>
</plist>





