Présentation d’Apache Solr

Slides:



Advertisements
Présentations similaires
19/06/02Kikiteam-ASI3n°1 / 21 Lenchere est en hausse… Forum, FAQ, Stats ! By KiKiTeam : Maxime Chambreuil, Minh LeHoai, Samy Fouilleux, Soizic Geslin.
Advertisements

Les solutions de recherche avec Drupal
L’optimiseur ORACLE L’optimiseur ORACLE suit une approche classique: Génération de plusieurs plans d’exécution. Estimation du coût de chaque plan généré.
Développement dapplications sur mobiles.NET et J2ME, C++ et Symbian WIPLIER Thomas – M2IRT2009 – 15/02/2007.
Koha - Greenstone Symposium Koha Miramas 28 mai 2010
ASP.NET v2 + Ajax = Atlas Pierre Lagarde DevDays 2006 Equipé aujourdhui, prêt pour demain !
« Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde Relation Développeurs.
Copyright 2011 © Consortium ESUP-Portail ESUP days, Paris, 17 juin 2011 Nouveaux services dans ESUP Julien Marchal.
PROCEDURES DE NOTIFICATION ARTICLE 11
Lucene une API d'indexation de texte. stocke les informations dans une structure d'index inversé. Les termes renvoient sur les documents qui les contiennent.
Le developpement web  Préparé par : ASSAL Lamiae JAMALI Zakarya
Serveurs web pour JSP et Servlets
interaction in the .LRN platform
INTRODUCTION INTRODUCTION ERGONOMIE Tri par cartes Formulaires Interface Installation Lanceur Documentation TECHNOLOGIES XML + XSL CSS Formulaires génériques.
Exposé de Système - Informatique et Réseau
Toolkit Web Framework Java pour les IHMs Cédric Dumas mars 2008 contrat Creative Commons Paternité-Pas d'Utilisation Commerciale- Partage.
1 Efficient Data and Program Integration Using Binding Patterns Ioana Manolescu, Luc Bouganim, Francoise Fabret, Eric Simon INRIA.
Manipulation d’XML avec XSL
11:16:331 Programmation Web Programmation Web : Formulaires HTML Jérôme CUTRONA
LA FORMATION DE LENSEIGNANT LENQUÊTE ECPALE MODULE PEDAGOGIQUE LA CONNAISSANCE ET LE RÔLE DE LENQUÊTE UN SUPPORT POUR COMPRENDRE LACCIDENT.
LOGO Profile Enterprise Java Beans Réaliser par: HAMROUNI Aymen HOUIJI Manel WESLATI Yassine.
Enesys RS Data Extension
Formation allégée à Pour les membres du réseau RBD Santé Maria Sugero et Samuel Piret – Décembre 2009.
Injection de dépendances
Les API Sudoc Le Sudoc autrement…
Développement d’applications web
Réseaux sociaux Rafik Alligui Laëtitia El Hakim Otakool.com 1.
Contrôles d'accès aux données
PI : Une plate forme multi-métiers pour TIGF
1 Comment utiliser votre Extranet Se connecter 2.My Site 3.Documentation 3.1 Documents dintégration 3.2 Documents types 4.Vos informations privées.
XML-Family Web Services Description Language W.S.D.L.
La haute tour sombre 3 Des actions
© 2007 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 La Concurrence Déclarative Peter Van Roy Département dIngénierie Informatique, UCL
Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-
Administration de SharePoint
Langages du Web Sémantique
Ecole Supérieure Privée de ingénierie et de technologie année universitaire :2013/2014 Cross-Plateform Cours JavaScript.
Les Webcasts Groupe des Utilisateurs SQL Server Avril 2014 – Statistiques Incrémentales Fred Pichaut – Microsoft Senior.
Magnets fiche projet / project sheet IAFACTORY THE MAGNETIC FACTORY magnets. IAFACTORY | conseil en architecture de linformation | |
TortoiseSVN N°. Subversion : pour quoi faire ? Avoir un espace de stockage commun – Tous les étudiants du SIGLIS ont un espace svn commun Partager vos.
Recommandations et procédure d’attribution de DOI
L’utilisation des bases de données
Cours N°2 Base de Données & Langage SQL
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
Racines carrées 1) Racine carrée d’un nombre positif
ADOBE FLEX 4. © Logica All rights reservedNo. 2 Introduction Flex en action Autour de Flex Logica Le programme.
Introduction au WebMapping
Mise en œuvre du langage MDX
Création d'un projet Web avec Netbeans
1. Les structures de documentation pour la division ST. 2. Les types de document dans la division ST. 3. Linterface informatique. Lundi 8 Mai 2000 ST Quality.
802.1x Audric PODMILSAK 13 janvier 2009.
I.S.I.S. Information System Initial Specification Rétro-conception de Bases de données Cyr Gabin Bassolet TIMC – équipe OSIRIS 21 décembre 2004.
Annexe 1 VISITE SUR
STSWEB Bascule Diffusion Nationale TOULOUSE – déc.2008.
La face cachée des systèmes de recherche Martin Bouchard, président Janvier 2003.
Projet de Master première année 2007 / 2008
Chapitre 3 Les bibliothèques de balises JSP et la JSTL
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
Le workflow Encadré par: M . BAIDADA Réalisé par: ATRASSI Najoua
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
‘‘Open Data base Connectivity‘‘
Première CTP le 4 décembre Nouvelle CTP depuis le 1 er février RTM milieu de cette année.
CALENDRIER-PLAYBOY 2020.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Outil de gestion des cartes grises
Séminaire Doc Mining Paris 13/11/2002 PSI Librairie Adam Sébastien Delalandre Mathieu Héroux Pierre.
Mise en œuvre du langage MDX
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
Transcription de la présentation:

Présentation d’Apache Solr Aurélien Pontacq 06/01/2009 1

Plan Introduction Principe de Solr Indexation des documents Recherche de documents Schema.xml Analyse Caractéristiques intéressantes Conclusion Démonstration

1. Introduction - bref historique Désir de mettre en place une plateforme de recherche Commerciales : licences chères Open source : pas de solutions complètes CNET fait don du code de Solr à Apache début 2006 De nombreux sites web à lourd trafic l’utilisent : cnet.com, zvents.com, oodle.com, netflix.com, tsr.ch, … Solr est basé sur Apache Lucene 3

1. Introduction - Apache Lucene Librairie de recherche « full-text » Créée en 1999, don à Apache en 2001 Libre, licence Apache 100% Java Mais a été portée en divers langages (C/C++, .NET, Python, Ruby, …) Rapide, stable, performant, modulable, communauté très active Wikipédia l’utilise ! 4

1. Introduction - Solr « Solr est un serveur de recherche pour entreprises, open source et basé sur la librairie Java de recherche Lucene, avec des APIs XML/HTTP, le principe de cache, de réplication, et une interface d’administration Web. » Tire profit des puissantes propriétés de Lucene Écrit en Java5 et déployable sous forme de webapp (.war). Grand nombre de supports wiki, mailing list, … 5

1. Introduction - Solr nécessite … Machine virtuelle Java5 ou plus récente Un conteneur de servlet Jetty, Tomcat, … L’application Solr Dernière version stable : 1.3.0 (septembre 2008) 6

2. Principe de Solr Interfaces XML/HTTP pour ajouter des documents (POST) et effectuer des recherches (GET). 2 points d’entrée principaux URL update => permet de maintenir les index http://localhost:8983/solr/update URL select => utilisé pour les requêtes de recherche http://localhost:8983/solr/select 7

2. Principe de Solr 8

3. Indexation de documents - Principe Solr maintient dans son index une collection de Documents Un Document est un ensemble de champs (fields) auxquels sont associées des valeurs. Solr permet d’indexer par défaut les fichiers XML et CSV Mais possibilité d’indexer des PDF, DOC, XLS ou PPT grâce à un handler de « Rich Documents ». Possibilité d’importer des données depuis une base de données, ou un flux RSS. Grâce au « DataImportHandler » 9

3. Indexation de documents - Ajout HTTP POST sur http://localhost:8983/solr/update <add><doc> <field name=“id”>0001</field> <field name=“name”>Peter Parker</field> <field name=“supername”>Spider-Man</field> <field name=“powers”>agility</field> <field name=“powers”>spider sense</field> <field name=“story”>In his first appearance, Peter Parker … </field> </doc></add> superheroes.xml Exemple avec curl curl http://localhost:8983/solr/update -H "Content-type:text/xml" --data-binary @superheroes.xml 10

3. Indexation de documents - Suppression Suppression par l’ID <delete><id>0001</id></delete> Suppression par une requête (plusieurs documents) <delete> <query>powers:agility</query> </delete> 11

3. Indexation de documents - Commit / optimize Commit : pour que toute modification d’index soit visible Ferme le flux d’écriture d’index et supprime les doublons Optimize : idem que Commit avec optimisation Accélère les recherches Réduit le nombre de segments d’index créé par Lucene <commit /> <optimize /> 12

4. Recherche de documents - Requête http://localhost:8983/solr/select?q=powers:agility& start=0&rows=10&fl=name, supername <response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">0</int> <str name="q">powers:agility</str> </lst> <result name="response" numFound="1" start="0"> <doc> <str name=“name">Peter Parker</str> <str name="supername">Spider-Man</str> </doc> </result> </response> 13

4. Recherche de documents - Output Récupération de la réponse sous différents formats XML (standard) JSON (notation javascript) Ruby Python PHP XSLT 14

4. Recherche de documents - Scoring Facteurs de scoring tf (term frequency) : Plus un terme apparaît de fois dans le document, plus le score est haut idf (inverse document frequency) – nombre de documents total / nombre de documents contenant le terme lengthNorm – privilégie les champs contenant le plus petit nombre de termes index-time boost et query-clause boost => score = tf * idf * lengthNorm * boosts Scoring : ordre des résultats des requêtes, par défaut Choix explicite de l’ordre : select?q=powers:agility;name asc; 15

4. Recherche de documents - Syntaxe des requêtes  Opérateur logique par défaut : OR name:Parker Parker, Peter Parker (≈ Peter OR Parker) name:"Peter Parker" AND supername:Spider-Man name:Peter^10 story:Peter +name:Parker +supername:Spider-Man –powers:flight id:[0 TO 1000] Par?er, Pet*r, Peter*, *:* 16

5. Schema.xml  Contient les types des champs des documents indexés, ainsi que leur comportement Types prédéfinis : int, float, string, date, boolean, … et types Solr : text, … 2 modes possibles d’analyse : indexation / requête Tokenizer : comment les mots sont découpés (split) ? Selon les espaces ? la ponctuation ? Filters : sensibilité à la casse, stemming (racine), …  Contient les champs eux-mêmes Définit une clé unique, le champ de recherche par défaut 17

5. Schema.xml Exemple : définition du type « text » <fieldType name="text" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/> </analyzer> <analyzer type="query"> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> </fieldType> 18

5. Schema.xml Fichiers .txt associés stopwords.txt synonyms.txt #Standard english #stop words an and as at be but by for if in … # Some synonym groups GB,gib,gigabyte,gigabytes MB,mib,megabyte,megabytes Television, Televisions, TV, TVs spider, arachnid … 19

5. Schema.xml Description des champs typés indexed=true : champ sur lequel on peut effectuer des recherches stored=true : champ qui pourra être retourné dans une requête <field name="id“ type="string“ indexed="true“ stored="true"/> <field name=“name“ type=“text” indexed="true" stored="true"/> <field name=“supername“ type=“string“ indexed="true“ stored="true"/> <field name=“powers“ type=“text“ indexed="true“ stored="true“ multiValued="true"/> <field name=“story“ type=“text“ indexed="true“ stored=“true"/> <uniqueKey>id</uniqueKey> <defaultSearchField>name</defaultSearchField> 20

Analyse de l’indexation Analyse de la requête spider sense An arachnid sense WhitespaceTokenizer WhitespaceTokenizer spider sense An arachnid sense StopFilter ignoreCase=true SynonymFilter ignoreCase=true expand=true An spider sense spider sense arachnid StopFilter ignoreCase=true Match! spider sense arachnid 21

7. Caractéristiques intéressantes Replication 1 Solr Master, plusieurs Solr Searchers (rsync) Highlighting Mise en surbrillance des termes Spellcheck Principe des suggestions Facets 22

Conclusion Facile d’installation Un petit temps de prise en main Wiki un peu brouillon, en perpétuel changement Puissant, nombreuses fonctionnalités Bel avenir devant lui 23

Questions ? 24