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



Documents pareils
Programmation Web. Madalina Croitoru IUT Montpellier

Recherche d Information(RI): Fondements et illustration avec Apache Lucene. par Majirus

Travaux Pratiques : Lucène - Gestion d un index plein texte

Architecture Orientée Service, JSON et API REST

Architectures Web Services RESTful

Fouillez facilement dans votre système Big Data. Olivier TAVARD

4. SERVICES WEB REST 46

les techniques d'extraction, les formulaires et intégration dans un site WEB

Développement des Systèmes d Information

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Utilisation de Jakarta Tomcat

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

CENTRE D ETUDES TECHNIQUES DE L EQUIPEMENT Point national d appui documentaire. Rapport de Stage. Master Informatique du Document.

Datalift. + + Architecture Modularité Déploiements. d j = 09/04/2015 Laurent BIHANIC

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Introduction à ElasticSearch

Formation en Logiciels Libres. Fiche d inscription

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Mykyta KUDINOV. Université nationale d'économie de Kharkiv Simon Kuznets,Ukraine, Université Lumière Lyon 2, France,

OpenPaaS Le réseau social d'entreprise

Catalogue des formations Edition 2015

Hébergement de sites Web

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Introduction aux «Services Web»

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Hébergement de site web Damien Nouvel

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Paris Airports - Web API Airports Path finding

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Applications et Services WEB: Architecture REST

CAS, un SSO web open source. 14h35-15h25 - La Seine A

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

Le stockage local de données en HTML5

Curriculum Vitae de Michel Casabianca

Java pour le Web. Cours Java - F. Michel

Projet Java EE Approfondi

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Gestion des utilisateurs dans un environnement hétérogène

Devenez un véritable développeur web en 3 mois!

Le Web de Données Dan VODISLAV Université de Cergy-Pontoise Master Informatique M2 Plan

Application Web et J2EE

Logiciels Open Sources et le Secteur Privé

Apache Cocoon Framework d'applications XML Sylvain Wallez Anyware Technologies

arcopole Studio Version 3.3

Mise à jour : Octobre 2011

Bases de données documentaires et distribuées Cours NFE04

JOnAS Day 5.1. Outils de développements

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É JAVA - J2EE. 27 ans - 5 ans d'expérience

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

1. La plate-forme LAMP

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Mise en œuvre des serveurs d application

A. Architecture du serveur Tomcat 6

Alfstore workflow framework Spécification technique

FileMaker Server 14. Guide de démarrage

FileMaker Server 12. publication Web personnalisée avec XML

JOnAS 5. Serveur d application d

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

BES WEBDEVELOPER ACTIVITÉ RÔLE

Gestion Electronique de Document (ECM/GED)

K-Portal et K-Sup 5.1 des nouveautés. Détails

Application de lecture de carte SESAM-Vitale Jeebop

Content Management System V.3.0. BlackOffice CMS V3.0 by ultranoir 1

Programmation en Java IUT GEII (MC-II1) 1

Panorama des solutions analytiques existantes

Web Tier : déploiement de servlets

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

La dernière base de données de Teradata franchit le cap du big data grâce à sa technologie avancée

MODULE Mailing - Newsletter

SYSTÈMES DE PUBLICATION POUR L INTERNET. Beatep Marie-France Landréa - Observatoire de Paris

A5.2.4 Étude d une technologie, d'un composant, d'un outil

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

Mercredi 15 Janvier 2014

Construire un réseau social avec Symfony Xavier Lacot Clever Age. Symfony Live 11 et 12 juin 2009 Clever Age Xavier Lacot

Chaîne opératoire de réalisation d une base de données. ANF «Comment concevoir une base de données» (29-30/01/2015)

Open Source Job Scheduler. Installation(s)

Construire des plug-ins pour SAS Management Console SAS 9.1

OFFRE MDB Service & Architecture Technique. MyDataBall Saas (Software as a Service) MyDataBall On Premise

Présentation Alfresco

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

Technologies Web avancées. ING1 SIGL Technologies Web avancées

arcopole Studio Version 3.1

--- SIDOMTECH (Auto-Entreprise) ---

Mythes et réalités de l'open Source. Open Source et secteur public. Le point de vue de l AWT. André Delacharlerie

équipement radio Procédure

COMPÉTENCES TECHNIQUES

An Phong Do. 567 croissant des Glaïeuls Laval (Québec) H7X 3H2 Cellulaire : anphongdo@gmail.com

Formation : WEbMaster

Petit guide pour l installation de CVW sous Linux


Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

Vue d ensemble technique

Transcription:

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

Plan 1. Introduction 2. Principe de Solr 3. Indexation des documents 4. Recherche de documents 5. Schema.xml 6. Analyse 7. Caractéristiques intéressantes 8. Conclusion 9. Démonstration Page 2

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, Solrest basésur Apache Lucene Page 3

1. Introduction - Apache Lucene Librairie de recherche «full-text» Page 4 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!

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, Page 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) Page 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 Page 7

2. Principe de Solr Page 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. Solrpermet d indexer par défaut les fichiers XML et CSV Page 9 Mais possibilitéd indexer des PDF, DOC, XLS ou PPT grâce à un handlerde «RichDocuments». Possibilité d importer des données depuis une base de données, ou un flux RSS. Grâce au «DataImportHandler»

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> Exemple avec curl Page 10 superheroes.xml curl http://localhost:8983/solr/update -H "Content-type:text/xml" --data-binary @superheroes.xml

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> Page 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 <commit /> Optimize: idem que Commit avec optimisation Accélère les recherches Réduit le nombre de segments d index créépar Lucene <optimize /> Page 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> Page 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 Page 14

4. Recherche de documents - Scoring Facteurs de scoring Page 15 tf(termfrequency) : 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;

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*, *:* Page 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 Page 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"> <tokenizer class="solr.whitespacetokenizerfactory"/> <filter class="solr.synonymfilterfactory" synonyms="synonyms.txt" ignorecase="true" expand="true"/> <filter class="solr.stopfilterfactory" ignorecase="true" words="stopwords.txt"/> </analyzer> </fieldtype> Page 18

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

5. Schema.xml Description des champs typés <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> Page 20 indexed=true: champ sur lequel on peut effectuer des recherches stored=true: champ qui pourra être retournédans une requête

6. Analyse Analyse de l indexation spider sense WhitespaceTokenizer Analyse de la requête An arachnid sense WhitespaceTokenizer spider sense An arachnid sense StopFilter ignorecase=true SynonymFilter ignorecase=true expand=true spider sense An spider sense arachnid StopFilter ignorecase=true Match! spider arachnid sense Page 21

7. Caractéristiques intéressantes Replication 1 Solr Master, plusieurs Solr Searchers(rsync) Highlighting Mise en surbrillance des termes Spellcheck Facets Principe des suggestions Page 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 Page 23

Page 24 Questions?