Recherche dans Wordpress avec le plugin Solr

Mardi 12 mai 2009 par dominique
Posté dans Lucene / Solr, Web 2.0, Wordpress

Je fais la promotion de Solr dans certain de mes articles et donc, je me devais d’utiliser Solr pour la recherche dans ce blog.

J’ai donc installé très simplement Solr sur mon serveur qui dispose déjà de Tomcat (pour les recherches avec Lucene dans l’application Web www.crossfeeds.fr). Pour cette installation, j’ai suivi le procédure utilisant JNDI et décrite dans mon récent article “Introduction à Solr - Installation et configuration (2)“.

Du coté de Wordpress, j’ai utilisé le tout nouveau plugin Solr for WordPress de Matt Weber. J’ai du apporter quelques modifications au plugin principalement pour le traduction en Français. Matt m’a confirmé qu’il allait travailler à simplifier l’internationalisation de son plugin pour les prochaines versions mais aussi simplifier et éclaircir la procédure d’installation. En effet, les étapes 4 et 5 de cette procédure ne sont pas très claires et je vais essayer d’apporter des précisions.

Installation du plugin Solr for Wordpress

Avant la procédure d’installation du plugin lui-même, il faut toutefois bien configurer le schema de Solr. En effet, dans sa présentation sur le site Wordpress, il est précisé que le schema Solr doit contenir certains champs. Voici le schema Solr version 1.4 que j’ai complété.

Voici une traduction et des éclaircissements sur cette procédure.

1. Copier le dossier “solr-for-wordpress” du plug-in dans le répertoire “/wp-content/plugins/” de Wordpress

2. Activer the plugin dans l’administration WordPress

3. Dans l’administration Wordpress (Réglages), configurer le plugin avec le nom du serveur (localhost), port (8180 avec Tomcat sous Debian) et le chemin d’accès au context Solr (”/solr” par exemple, mais cela dépend comment a été configurer Solr dans Tomcat)

4. Créer une page template pour la recherche en utilisant les fonctions s4w_search_form() et s4w_search_results().

Cette page template est un fichier php à créer dans votre thème. Voici en exemple, celui de Zoonix que j’ai nommé “search.php”.


<?php /* Template Name: Search */ ?> <?php get_header(); ?> <style type="text/css">     #resultpager {display: none;}     #noresults {display: none;}       #resultwrap {overflow:hidden; width:980px; margin-bottom:200px;}     #facets {         float:right;         width:200px;         border-style: solid;         border-width: 3px;         border-color: orange;     }    #resultinfo {width:750px; font-weight: bold;}     #infoclear {width:750px;}     #resultpager {width:750px;}     #pagerclear {width:750px;}     #facetclear {width:750px;}     #results {width:750px;}     #resultsclear {width:750px;}         .result {margin : 0 0 30px 0 ;}     #resultwrap h2 { font-size:16px; margin:0 7px 3px 0; padding:3px 0; }     #results p { font-size:1Opx; font-weight: normal;} </style> <div class="br"><br /></div> <div id="content">      <div id="form">          <?php s4w_search_form(); ?>      </div>      <div id="resultwrap">          <?php s4w_search_results(); ?>      </div> </div> <div class="br"><br /></div> <?php get_footer(); ?>

5. Créer une page WordPress appelée “Search” et lui assigner le template “Search” créé dans l’étape précédente.

Pour assigner un template a une page, il faut utiliser dans la page d’édition, la liste “Modèle” qui se situe à droite dans la zone “Attributs”.

Pour que la page n’apparaisse pas dans le widget “Page” de la barre de navigation a droite dans Zoonix, j’ai ajouter l’id de cette page dans la liste d’exclusion du Widget (menu Apparence et Widgets de l’administration Wordpress).

6. Mettre à jour tous les formulaires de recherche du thème afin pour avoir comme action “/search” et comme critère de recherche un champs nommé “qry”.

Pour Zoonix, cela donne :

<form method="get" id="searchform" action="/search/">
    <input type="text" value="" name="qry" id="qry" />
    <input type="submit" id="searchsubmit" value="Chercher" />
</form>

7. Dans l’administration Wordpress (Réglages) du plugin, indexer toutes les pages (Load pages) et/ou les articles (Load posts). En ce qui concerne Zoonix, j’ai bien pris soin de le pas indexer les 2 pages (”A propos” et la fameuse page “Search”).


Que m’apporte l’utilisation du plugin Solr for Wordpress ?

2 choses au moins :

  • Le classement des résultats avec une meilleur pertinence
  • La recherche par facette pour affiner les résultats

Pour des sites plus volumineux, la vitesse de la recherche sera également améliorée.


Ce que je dois améliorer dans la mise en oeuvre de ce plugin ?

2 choses également :

  • l’affichage du résumé des articles
  • la non mise en évidence des critères de la recherche


 
 

Vous pouvez suivre les commentaires à ce message au travers du flux RSS 2.0 . Vous pouvez laisser un commentaire, ou placer un trackback depuis votre propre site.

Ajouter un commentaire

A propos

Je suis informaticien indépendant. J'interviens principalement dans les domaines de la gestion documentaire et des moteurs de recherches. Ce blog me permet de partager des informations techniques decouvertes au cours de mes différents projets ou lors de mes lectures sur le Web.

Dominique - www.eolya.fr

Optimisez la lecture de vos blogs et sites d'information préférés

Crossfeeds est un service Web de mixage et de filtrage de flux RSS. Crossfeeds dispose d'une base de 600.000 flux et offre des fonctionnalités de recherche dans les flux et d'alertes par emails.

http://www.crossfeeds.fr/