Crawler

Um nicht jede Seite im Frontend aufrufen zu müssen, daß sie in der indizierten Suche aufgenommen wird, kann man den crawler einsetzen.

Erstellt: 10/2015| Geändert: 10/2015

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

Erstellt: 07/2010| Geändert: 10/2015

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.

Erstellt: 07/2010| Geändert: 10/2015

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>


Erstellt: 07/2010| Geändert: 10/2015