Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

32
Les solutions de recherche avec Drupal

description

L'importance de proposer un moteur de recherche performant. Les meilleures solutions de recherche sous Drupal 6 et Drupal 7. Pour utiliser Apache SolR avec Drupal 7.

Transcript of Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

Page 1: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

Les solutions de recherche avec Drupal

Page 2: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

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.

Page 3: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

Quelques chiffres…

Première action d’un internaute en arrivant sur un site e-commerce.

Source: MarketingSherpa.com

Page 4: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

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.

Page 5: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

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:

Page 6: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

Le meilleur moteur de recherche selon mes visiteurs

Page 7: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR
Page 8: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR
Page 9: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

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.

Page 10: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

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.

Page 11: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

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.

Page 12: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

Les applications dédiées externes

> Xapian

> Sphinx

> Apache SolR (Lucene Java)

> Zend Lucene

> Exalead

> Les appliances externes: Google, Bing

Page 13: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

+

Page 14: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

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é.

Page 15: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

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.

Page 16: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

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.

Page 17: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

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!

Page 18: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

Comment ça marche?

Drupal

MySQL

ApacheSolR

SQL

POST

GET

Page 19: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

Un même serveur, plusieurs sites

Page 20: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

Une recherche multi sites

Page 21: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

Solr propose bien plus…

> Auto-complétion.

> Suggestions de corrections orthographiques.

> Recommandations de contenus.

> Filtrage géographique.

> Surlignages des résultats.

Page 22: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

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… »

Page 23: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

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.  »

Page 24: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

Scénario identique sur une recherche par facettes

Page 25: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

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 »

Page 26: Conférence Drupagora 2011: Drupal et les moteurs de recherche: 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

Page 27: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

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.

Page 28: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

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.

Page 29: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

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é.

Page 30: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

Références

> Apache Solr Search Integrationhttp://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 Stockholmhttp://robshouse.net/blog-post/me-speaking-about-apache-solr-search-drupalcamp-stockholm

Page 31: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

Références

> Views 3 + Apache Solr + Acquia Drupal = The Future of searchhttp://www.acquia.com/blog/views-3-apache-solr-acquia-drupal-future-search

> Geospatial Apache Solr searching in Drupal 6 by upgrading Solr to 3.1http://ericlondon.com/geospatial-apache-solr-searching-drupal-6-upgrading-solr-31

> The offical Apache SolR wikihttp://wiki.apache.org/solr/FrontPage.

> Search in Drupalhttp://poplarware.com/articles/drupal_search

Page 32: Conférence Drupagora 2011: Drupal et les moteurs de recherche: Apache SolR

Merci pour votre attention!

Gwénaël Chichery pour Drupagora 2011Partner at Actualysgchichery(at)actualys.comwww.actualys.com

10 novembre 2011