Les solutions de recherche avec Drupal
De l’importance d’un moteur de recherche > La fonction de recherche est souvent la fonction la mieux maitrisée par l’internaute. > Parfois le seul moyen de donner accès à des documents sur un site. > Un bon moteur de recherche permet d’améliorer la conversion: e-commerce, inscription, services, etc.
Quelques chiffres… Première action d’un internaute en arrivant sur un site e-commerce. Source: MarketingSherpa.com
Les qualités d’un bon moteur de recherche > Efficace: il permets d’indexer « MES » informations / documents. > Rapide: le temps de réponse est capital. > Pertinent: il doit permettre à l’internaute de trouver l’information que l’on souhaite lui apporter. (scoring factor) > Personnalisable: Je dois pouvoir l’intégrer selon mes besoins.
Les qualités d’un bon moteur de recherche vues de l’internaute > Rapide: pour ne pas dire instantané. > Facile à utiliser. > Me donne le bon résultat en premier si possible. > En un mot, le bon moteur de recherche:
Le meilleur moteur de recherche selon mes visiteurs
La recherche par défaut sous Drupal 7 > Une solution « Out of the box ». > Un module search, un formulaire et quelques options. > Une intégration avec les modules « Node » et « User ». > Une gestion « automatique » des permissions. > Un scoring factor basique.
Les limites du module search > Les performances, notamment couplé avec l’utilisation de views. > Les performances s’écroulent avec de nombreux contenus (> 10k nœuds). > La recherche s’effectue sur le même serveur que la base de données. > Un paramétrage faible. > N’indexe pas les documents: Word, PDF, PPT, etc.
Peux-on repousser les limites du module search? > OUI: Il existe de nombreux modules permettant d’étendre les fonctionnalités de recherche: recherche par facette, views avec des filtres, « faceted search » indexation de documents, etc. > NON: On ne peux pas pallier les limites en terme de performance. La combinaison de nombreux modules peux rendre la maintenance délicate.
Les applications dédiées externes > Xapian > Sphinx > Apache SolR (Lucene Java) > Zend Lucene > Exalead > Les appliances externes: Google, Bing
+
La génèse de SolR > Créé initialement par CNT Networks en 2004. > Le code a été transmis à la fondation Apache en 2006. > En 2007, SolR est devenu un sous-projet de Lucene. > En 2010, les projets SolR et Lucene-java ont fusionné.
La carte d’identité d’ Apache SolR > Un projet Open Source soutenu par la fondation Apache. > Une application Java / J2EE, tourne parfaitement sur Tomcat, Resin ou Jboss. > Architecture ouverte, modules, interfaces XML, JSON et HTTP. > Parfaitement intégré à Drupal grâce à différents module, le principal étant Apache SolR Search Integration.
Pourquoi Apache SolR ? > Capable d’indexer des volumes de données importants. > Très rapide, les performances se dégradent très peu avec le trafic. > Gestion du cache performante > Scalability.
Pourquoi Apache SolR ? > L’indexation de nombreux formants de documents: Word, Powerpoint, PDF. > Notions de scoring et critères avancés. > La recherche par filtres. > Les recherches par facettes. > Le moteur de recherche de Drupal.org!
Comment ça marche? POST Drupal Apache SolR GET SQL MySQL
Un même serveur, plusieurs sites
Une recherche multi sites
Solr propose bien plus… > Auto-complétion. > Suggestions de corrections orthographiques. > Recommandations de contenus. > Filtrage géographique. > Surlignages des résultats.
Le paradoxe de la recherche à facette « Partir d’une recherche peu précise pour arriver au résultat souhaité, quand Google ne peux plus rien pour moi ou presque… »
Scénario de recherche sur Google « Je recherche un week-end en Janvier, avec un départ le 6: la recherche Full text montre ici ses faiblesse. »
Scénario identique sur une recherche par facettes
Les facettes SolR mises en œuvre avec Drupal pour la construction d’un site: www.universitedesaidants.fr « Les pages sont construites grâce aux résultats renvoyés par Apache SolR »
Quelques tips… > Désactiver la recherche standard… et l’indexation par le module « core search »… > Si SolR est sur le même serveur que votre base de donnée, prévoir de lancer une indexation séparée des autres CRONS. > Testez différentes configurations. > SolR search fonctionne avec DRUSH
Oui mais un serveur Java c’est compliqué… > Il existe un équivalent en PHP: Zend Lucene mais le module Drupal n’est pas stable. > Une solution hébergée en mode ASP: > La solution fonctionne sur Drupal 6 et 7, le module est Plug & Play. > Pas de config, pas de maintenance, pas de java.
Quel avenir pour SolR et Drupal > Le module est activement maintenu, notamment par Acquia. > Avec « Views 3 », il est possible d’afficher des résultats provenants directement de SolR, de la même façon qu’avec une base de données MySQL. > Pas de requêtes en base de donnée, pas de jointures complexes. > Génération aisée de slideshows ou de playlists avec contenus multimédias.
En résumé > J’ai peu de contenus, je recherche la simplicité: « Core search », éventuellement agrémentés que quelques modules. > J’ai beaucoup de contenus, une problématique de performances, mais pas de ressources pour maintenir et héberger un serveur J2EE: une solution SAAS telle que Acquia Search. > J’ai de nombreux contenus, je dois indexer plusieurs sites et une problématique forte de performances: SolR sur serveur dédié.
Références > Apache Solr Search Integration http://drupal.org/node/343467 > Intro to Apache Solr for Drupal http://www.slideshare.net/reallyordinary/intro-to-apache-solr-for-drupal-8157887 > Robert Douglass au DrupalCamp Stockholm http://robshouse.net/blog-post/me-speaking-about-apache-solr-search-drupalcamp-stockholm
Références > Views 3 + Apache Solr + Acquia Drupal = The Future of search http://www.acquia.com/blog/views-3-apache-solr-acquia-drupal-future-search > Geospatial Apache Solr searching in Drupal 6 by upgrading Solr to 3.1 http://ericlondon.com/geospatial-apache-solr-searching-drupal-6-upgrading-solr-31 > The offical Apache SolR wiki http://wiki.apache.org/solr/FrontPage. > Search in Drupal http://poplarware.com/articles/drupal_search
Merci pour votre attention! Gwénaël Chichery pour Drupagora 2011 Partner at Actualys gchichery(at)actualys.com www.actualys.com 10 novembre 2011