Cet article explique comment mettre en place un moteur de recherche pour votre site. Cet article utilise les extensions indexed_search (fournie par défaut avec TYPO3) et
crawler pour l’indexation et l’extension
macina_searchbox pour le masque de recherche présent sur toutes les pages.
Au programme de cet article :
L’extension crawler autorise la mise en place de cron jobs et permet ainsi de choisir quand le site doit être indexé. En effet, par défaut, indexed_search indexe les pages au fur et à mesure qu’elles sont visitées, ce qui n’est pas très efficace.
Commençons par installer ces deux extensions :

L’étape suivante est de configurer l’extension indexed_search. La copie d’écran suivante montre quelques uns des champs à configurer. Nous aurons besoin des outils :
Les autres points de configuration importants sont de désactiver l’indexation des documents depuis le frontend puisque nous allons mettre en place un cron job, et de spécifier que les fichiers externes (PDF, …) doivent être indexés séparément des pages Web.

Avant de mettre en place le cron job, nous allons configurer notre site pour qu’il puisse être indexé. Dans la partie Setup de notre template, rajoutons :
page.config.index_enable = 1 page.config.index_externals = 1
Ensuite, dans la partie pageTS de notre page d’accueil (respectivement la racine de notre site), ajoutons
tx_crawler.crawlerCfg.paramSets { tt_content = &L=[0-1] tt_content.procInstrFilter = tx_indexedsearch_reindex # if extension cachemgm is available too: # ... = tx_indexedsearch_reindex, tx_cachemgm_recache tt_content.baseUrl = http://www.domain.tld/ }
En mode Web > List, créons à la racine de notre site un nouvel enregistrement de type Indexing configuration. Choisissons le type page tree puis sélectionnons notre page racine.
La profondeur d’indexation (depth) peut être définie à 1 si toutes nos pages sont accessibles depuis la racine (ce qui est presque toujours le cas). Enregistrons la configuration et vérifions qu’elle est active (un point d’interrogation rouge sur l’icône de la configuration indique que la configuration est masquée (hidden) et donc qu’elle est inactive).
Cliquons maintenant sur Web > Info, sélectionnons la racine de notre site dans l’arbre des pages puis dans l’écran des informations, choisissons crawler dans la liste déroulante.
Vérifions que vous allons effectuer un site crawling sur tous les sous-niveaux (infinite), sélectionnons la processing instruction Re-indexing puis cliquons sur Update et Crawl URLs. Notre site va alors commencer à être indexé. Nous pouvons vérifier l’état en choisissant Indexed search dans la liste déroulante de l’écran des informations.

Pour que l’extension crawler fonctionne, il faut créer dans Tools > User Admin un nouvel utilisateur nommé _cli_lowlevel. Le mot de passe n’importe pas et ses droits d’accès non plus.
Voilà ! Il ne reste plus qu’à créer le cron job :
* * * * * www-data php /path/to/typo3/cli_dispatch.phpsh crawler
Commençons par créer une page qui contiendra le résultat de nos recherches. Dans les propriétés de la page, nous pouvons choisir de la masquer dans le menu étant donné que nous avons un masque de recherche présent sur toutes les pages. Rajoutons maintenant le plugin indexed_search comme élément de contenu :

Pour le masque de recherche proprement dit, nous pouvons installer l’extension
macina_searchbox de la même façon que nous avons installé les extensions pour l’indexation du contenu. Puis, dans notre templateTS, rajoutons le code nécessaire à l’incorporation du plugin :
plugin.tx_macinasearchbox_pi1 { pidSearchpage = 12 templateFile = fileadmin/templates/search_template.html } lib.searchbox < plugin.tx_macinasearchbox_pi1
Le paramètre pidSearchpage correspond à la page qui contient le plugin indexed_search. Quant au paramètre templateFile, par défaut c’est le fichier EXT:macina_searchbox/pi1/template.htm qui est utilisé. Il suffit d’en créer une copie et de la modifier comme souhaité.
Pour de plus amples informations, vous pouvez lire
la documentation de l’extension indexed_search.