Apache Solr    Moteur de recherche utilisant Apache Lucene,              implémenté dans un serveur WebAlpesJug | 19 févri...
Présentations ...●   André Bois-Crettez    –   R&D : le moteur de recherche de Kelkoo        ●   Basé sur Lucene il y a … ...
… présentations–   Les raisons de votre présence ce soir ...    ●   Simple curiosité ?    ●   Besoin dimplémenter de la re...
Historique●   2004 : créé par Yonik Seeley chez CNET Networks●   2006 : le code source de Solr est donné par CNET à    la ...
Les bases●   Découpage en termes (tokens), index inversé        Doc1 : "maison bleue"                   "arbre"    doc2   ...
ArchitectureCC by www.cominvent.com
Démarrage rapide●   http://lucene.apache.org/solr/tutorial.html●   Télécharger et extraire solr-4.1.0.zip●   Dans le réper...
Fonctionnalités 1/2●   Mécanisme de synonymes, et mots vides (stopwords)    –   Une liste de stopwords est dispo pour le f...
Fonctionnalités 2/2●   Filtres et facettes complexes    –   Hiérarchiques : tree, pivot faceting    –   Calculés dynamique...
Extensions et besoins spécifiques●   Système modulaire de filtres, plugins, RequestHandler    –   Simple dinjecter son cod...
SolrCloud●   Conçu pour la scalabilité facile (concurrence avec Elasticsearch)●   On définit en combien de tranches lindex...
Performance et scalabilité                                                          Java6:●   RAM : assez peu de mémoire n...
Solr vs Elasticsearch●   SolrCloud assez jeune et basique    –   Si besoin particulier, faire « à la main » avec le mode m...
Apache Solr : conclusion●   Coût dentrée faible●   Large communauté de devs et utilisateurs●   Utilisé tant en intranet, q...
Liens et référenceshttp://lucene.apache.org/solr/4_1_0/tutorial.htmlhttp://wiki.apache.org/solr/SolrCloudhttp://blog.semat...
Prochain SlideShare
Chargement dans…5
×

Apache solr andré bois-crettez 08

1 616 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 616
Sur SlideShare
0
Issues des intégrations
0
Intégrations
604
Actions
Partages
0
Téléchargements
21
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Apache solr andré bois-crettez 08

  1. 1. Apache Solr Moteur de recherche utilisant Apache Lucene, implémenté dans un serveur WebAlpesJug | 19 février 2013 André Bois-Crettez | Kelkoo
  2. 2. Présentations ...● André Bois-Crettez – R&D : le moteur de recherche de Kelkoo ● Basé sur Lucene il y a … longtemps ● Puis intégration dun moteur interne Yahoo ● Yahoo ayant vendu Kelkoo, plus aucun support ● Besoin dévolution, il y a un an choix dApache Solr après comparaison avec des prototypes implémentés sur 4 moteurs payants
  3. 3. … présentations– Les raisons de votre présence ce soir ... ● Simple curiosité ? ● Besoin dimplémenter de la recherche ? ● Vous perfectionner sur le sujet ?– Déjà utilisé Lucene ou Solr ou Elasticsearch ? – Ou une autre techno de recherche ?– Sujets qui vous intéressent : ● Performance ? – Ex : plus de 10 million de documents, ou mise à jour de lindex toutes les X secondes, trafic > 20 requêtes par seconde ● Fonctionnalités utilisateur ? – Synonymes, singulier pluriel, suggestion de correction orthographe, fuzzy matching, différentes langues, recherche géospatiale
  4. 4. Historique● 2004 : créé par Yonik Seeley chez CNET Networks● 2006 : le code source de Solr est donné par CNET à la fondation Apache● 2010 : Lucene et Solr sont intégrés dans le même cycle de release et ont les mêmes développeurs● Janvier 2013 : Solr 4.1 avec Lucene 4.1
  5. 5. Les bases● Découpage en termes (tokens), index inversé Doc1 : "maison bleue" "arbre" doc2 "bleue" doc1 Doc2 : "arbre vert" Indexation "maison" doc1 Doc3 : "volet vert" "vert" doc2, doc3 "volet" doc3● TF.IDF (term frequency x inverse documents frequency) – TF : Plus un terme est fréquent dans le document considéré, plus il est important – IDF : Plus un terme est fréquent dans lensemble des documents de lindex, moins il a dimportance
  6. 6. ArchitectureCC by www.cominvent.com
  7. 7. Démarrage rapide● http://lucene.apache.org/solr/tutorial.html● Télécharger et extraire solr-4.1.0.zip● Dans le répertoire solr-4.1.0/example : java -jar start.jar Administration : http://localhost:8983/solr/ ! o●● Indexation : é m java -jar post.jar *.xml D● Recherche : http://localhost:8983/solr/collection1/browse/
  8. 8. Fonctionnalités 1/2● Mécanisme de synonymes, et mots vides (stopwords) – Une liste de stopwords est dispo pour le français● Stemming pour de nombreuses langues – Choix de différents algos : enlèvement de suffixes plus ou moins aggressifs – vert <-> verts ou plus extrême consti <-> constitutionel● DataImportHandlers (DIH) pour indexer directement : – Databases – XML/HTTP – MS Office, PDF, multimédia, etc avec Apache Tika● Recherche géospatiale – Distance autour dun point de recherche, tri par distance – Recherche par polygone
  9. 9. Fonctionnalités 2/2● Filtres et facettes complexes – Hiérarchiques : tree, pivot faceting – Calculés dynamiquement par une fonction – Date et temps● Boost functions pour modifier le ranking – En fonction du prix, note, distance, etc et formules mathematiques● Extended DisMax – boost si les mots sont rapprochés – Recherche multi-champs automatique – Min-should-match : minimum number of token that should match● DirectSolrSpellChecker, suggest, recherche àpro aproximative fuzzy match~2
  10. 10. Extensions et besoins spécifiques● Système modulaire de filtres, plugins, RequestHandler – Simple dinjecter son code métier (en Java) sans devoir patcher Solr● Beaucoup de cas et dexemples sur le Web – Souvent on découvre quil suffit dun peu de conf, sans développement supplémentaire● Si vraiment nécessaire, un support payant est facilement possible
  11. 11. SolrCloud● Conçu pour la scalabilité facile (concurrence avec Elasticsearch)● On définit en combien de tranches lindex est découpé, puis chaque instance Solr démarrée participe automatiquement● Failover automatique, si suffisamment dinstances Shard1 : Shard2 : Shard3 :● Indexation & recherche inst1 inst2 inst3 – Distribuées automatiquement inst4 inst5 inst6● Haute disponibilité inst7 inst8 ...● NRT : near real time search ... Lancien système basé sur une architecture master-slave + sharding explicite est aussi disponible. Moins automatique, mais robuste depuis des années et possibilité de finement contrôler les détails.
  12. 12. Performance et scalabilité Java6:● RAM : assez peu de mémoire nécessaire à la JVM, par contre en laisser un -Xms4096M max pour le cache disque de lOS. -Xmx8192M -XX:NewRatio=1● I/O, au choix : -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled – Cheap : beaucoup de RAM, et disques classiques – La classe : SDD mais plus coûteux● CPU : dépend beaucoup du type de requêtes● Index sharding : pour gros volumes dindex (ex >10M docs) malgré surcoût de combiner les résultats● Replicas : pour gros volumes de requêtes et haute dispo● Benchmark ! – Solrmeter : simple à utiliser, proche de Solr (vue des caches), bien pour explorer – Gatling-tool : dans une prochaine présentation AlpesJug !
  13. 13. Solr vs Elasticsearch● SolrCloud assez jeune et basique – Si besoin particulier, faire « à la main » avec le mode master- slave et le sharding personalisé● Suggest / did you mean est livré avec Solr● Facilité de mettre son propre code à différents endroits du moteur● Fonctionalités de Lucene 4 disponibles
  14. 14. Apache Solr : conclusion● Coût dentrée faible● Large communauté de devs et utilisateurs● Utilisé tant en intranet, que pour des sites eCommerce à fort trafic● Implémenter une solution de recherche, ce nest pas seulement déployer une solution, cest aussi étudier les logs de requêtes pour laméliorer – Top recherches, top mots – Top recherches sans résultats Top recherches sans clic sur les résultats ? ? rch – S ea – Position dans la page de résultats du document cliqué t ant e Ins o gl – Étude de sessions de recherches successives Go
  15. 15. Liens et référenceshttp://lucene.apache.org/solr/4_1_0/tutorial.htmlhttp://wiki.apache.org/solr/SolrCloudhttp://blog.sematext.com/2012/08/23/solr-vs-elasticsearch-part-1-overview/ (et tout le blog)http://lucidworks.lucidimagination.com/display/solr/Apache+Solr+Reference+Guidehttp://refcardz.dzone.com/refcardz/solr-essentials#refcard-download-social-buttons-displayhttp://www.lucenerevolution.org/past_eventshttp://searchhub.org/blog/http://solr.pl/en/ … vos questions ?

×