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



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

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

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

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

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

Introduction à ElasticSearch

NFE204 Bases de données avancées

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

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole :

26 Centre de Sécurité et de

GLOSSAIRE DU SOUTIEN EN CAS DE RECOURS EN JUSTICE

! Text Encoding Initiative

NIMEGUE V3. Fiche technique 3.07 : Sauvegarde / Restauration manuelle

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Base de données bibliographiques Pubmed-Medline

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Spécialiste de la gestion de flux documentaires et de l environnement informatique associé. STEP : Un projet, deux ambitions

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Plateforme PAYZEN. Définition de Web-services

Ceci est un Chromebook, ton ordinateur!

Structure fonctionnelle d un SGBD

INSTALLATION ET CONFIGURATION DE OPENLDAP

SMS INFO & TABLEAU DE BORD CLIENT. Avec Cloud Communication Solution (C.C.S).

Programmation Objet - Cours II

Messagerie sécurisée, fiable et économique

TD3 - Facturation avec archivage automatisé

2 S I M 1 P H O N E G U I D E U T I L I S A T E U R. Guide d utilisation E-commerce / Prestashop

TYPO3 & Synomia Cédric Tempestini <ctempestini@archriss.com>

PRESENTATION 2009 L'ingénierie Documentaire

La Gestion Électronique de Documents spécialement conçue pour les Experts Comptables

4D v11 SQL Release 5 (11.5) ADDENDUM

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

La base de données dans ArtemiS SUITE

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1

LECON 2 : PROPRIETES DE L'AFFICHAGE Version aout 2011

SQL Server 2014 Administration d'une base de données transactionnelle avec SQL Server Management Studio

SQL Server Administration d'une base de données transactionnelle avec SQL Server Management Studio (édition enrichie de vidéos)

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

Patrons de Conception (Design Patterns)

OPTIMISATION SI IMMOBILIER

C.M. 1 & 2 : Prise en main de Linux

4D v11 SQL BREAKING THE LIMITS * Les nouveautés

et de la feuille de styles.

Créer et partager des fichiers

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

Utiliser un tableau de données

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

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Bases de données relationnelles

Objectifs du TP : Initiation à Access

Créer une base de données vidéo sans programmation (avec Drupal)

NoSQL. Introduction 1/30. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Administration de Parc Informatique TP02 : Utilisation du logiciel Marionnet

TD séances n 3 et n 4 Répertoires et Fichiers sous Unix

Flex. Lire les données de manière contrôlée. Programmation Flex 4 Aurélien VANNIEUWENHUYZE

OpenPaaS Le réseau social d'entreprise

Le portail des MSH

Information utiles. webpage : Google+ : digiusto/

Définitions. Numéro à préciser. (Durée : )

Cours 8 Not Only SQL

arcopole Studio Version 3.3

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (

Sauvegarde et archivage

VXPERT SYSTEMES. CITRIX NETSCALER 10.1 et SMS PASSCODE 6.2. Guide d installation et de configuration pour Xenapp 6.5 avec SMS PASSCODE 6.

TUTORIEL : Formulaire sur Google : Saisie des réponses questionnaires comptoir Mise en place de questionnaires à distance

1. Installation du Module

Base de données relationnelle et requêtes SQL

Animation numérique. de territoire. Créer son site Internet avec un outil gratuit. Mardi 4 novembre Cédric ARNAULT OT Lourdes

QUESTIONNAIRE ENQUÊTE LOGICIEL DOCUMENTAIRE JANVIER 2002

Automatisation des sauvegardes

«Connais toi toi-même comme l as dit Socrate!»

Atelier 2 : Les clés du référencement sur Google

PPE Installation d un serveur FTP

Introduction à MATLAB R

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

TP, première séquence d exercices.

Définition des Webservices Ordre de paiement par . Version 1.0

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

SCI6052 Information documentaire numérique École de bibliothéconomie et des sciences de l information

Bases de données élémentaires Maude Manouvrier

CASE-LINUX MAIL - ROUNDCUBE

CESI Bases de données

Gestion des données avec R

PROJET ALGORITHMIQUE ET PROGRAMMATION II

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

GUIDE D INSTALLATION. Portaneo Enterprise Portal version 4.0

Construire une application marketing Facebook sur la plateforme Windows Azure

Tutoriel : Créer un site web simple avec Composer. Fiche consigne Page 1 sur 6

Manuel utilisateur (Manuel_utilisateur_version pdf) Manuel Reprise des données (Manuel_Reprise_donnees_version

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Projet en nouvelles technologies de l information et de la communication

Commissions & groupes de travail du réseau documentaire PRISME Note pour l aide au choix d une commission

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

ndv access point : Installation par clé USB

Comment automatiser la création d index multiples avec Word Paul-Henri Dumas - URFIST

Configuration du FTP Isolé Active Directory

Écriture de journal. (Virement de dépense)

Transcription:

Bases de données documentaires et distribuées Cours NFE04 Création d un index Solr Auteurs : Raphaël Fournier-S niehotta, Philippe Rigaux, Nicolas Travers prénom.nom@cnam.fr Département d informatique Conservatoire National des Arts & Métiers, Paris, France

Construction d un moteur de recherche On va utiliser la base des films de MongoDB et l indexer Dans Solr, un index s appelle core Celui par défaut que l on a utilisé s appelait collection1 On va en configurer un autre, movies Dans solr/example/solr : cp -R collection1 movies cd movies éditer core.properties pour changer la propriété name à movies vider data/ : rm -Rf data/* se placer dans le répertoire conf

Un document (exemple) { "_id": "movie:57", "title": "Jackie Brown", "year": "1997", "genre": "crime", "summary": "Jacky Brown, hotesse de l air,...", "country": "USA", "director": "Quentin Tarantino", "actors": ["Robert De Niro", "Pam Grier", "Bridget Fonda", "Michael Keaton","Samuel Jackson"] }

Schéma de l index Le schéma donne la liste de tous les champs d un doc Solr Nombreuses options : type (numérique, entier) possibilité de calcul de la valeur du champ à partir d un autre traitements divers sur les valeurs du champ

Squelette <?xml version="1.0" encoding="utf-8"?> <schema name="example" version="1.5"> <!-- Liste des champs de l index --> <fields> <field name="_id" type="string" indexed="true" stored="true" required="true" /> <field name="title" type="string" indexed="true" stored="true" required="true" /> <field name="summary" type="text" indexed="true" stored="false" required="false" /> <!-- A completer --> <!-- Un champ dans lequel on concatene les autres pour une recherche "plein-texte" --> <field name="text" type="text" indexed="true" stored="false" multivalued="true" /> <copyfield source="summary" dest="text" /> <copyfield source="title" dest="text" /> <!-- Un champ "technique" requis par Solr/Lucene --> <field name="_version_" type="long" indexed="true" stored="true" /> </fields> <!-- La cle d acces a un document dans l index --> <uniquekey>_id</uniquekey> <!-- Configuration des types de champ --> <types> <fieldtype name="string" class="solr.strfield" /> <fieldtype name="int" class="solr.intfield" /> <fieldtype name="long" class="solr.longfield" /> <fieldtype name="text" class="solr.textfield"> <analyzer> <tokenizer class="solr.standardtokenizerfactory" /> <filter class="solr.lowercasefilterfactory" /> </analyzer> </fieldtype> </types> </schema>

Squelette de l index la liste des champs, dans l élement fields, complétée par l indication du champ de recherche par défaut ; le champ qui identifie le document Solr, dans l élément uniquekey ; la liste des types de champ, dans l élément types. Note : Pour des besoins internes, tout schéma doit contenir un champ _version_ défini comme ci-dessus.

Définition des types et de la clé Chaque type utilisé dans le schéma d un index doit apparaître dans un des élements fieldtype du fichier schema.xml Solr fournit tout un ensemble de types pré-définis qui suffisent pour les besoins courants ; on peut associer des options à un type Les options indiquent d éventuels traitements à appliquer à chaque valeur du type avant son insertion dans l index ex : type text on lui définit un analyseur StandardTokenizerFactory se charge de découper le texte en tokens pour une recherche plein-texte (détails plus tard) retenir : cela permet d indexer chacun des mots, et donc de faire des recherches sur toutes les combinaisons de mots L élément uniquekey permet de rechercher un document dans l index par sa clé. Indispensable, ne serait-ce que pour savoir qu un document est indexé

Définition des champs <field name="_id" type="string" indexed="true" stored="true" required="true" multivalued="false" /> Les attributs de l élement XML caractérisent le champ Le nom et le type sont les informations de base Ensuite, divers attributs (souvent optionnels) : indexed indique simplement que le champ pet être utilisé dans une recherche ; stored indique que la valeur du champ est stockée dans l index, et qu il est donc possible de récupérer cette valeur comme résultat d une recherche, sans avoir besoin de retourner à la base principale ; en d autres termes, stored permet de traiter l index aussi comme une base de données ; required indique que le champ est obligatoire ; enfin, multivalued vaut true pour les champs ayant plusieurs valeurs, soit, concrètement, un tableau en JSON ; c est le cas par exemple pour le nom des acteurs.

Définition des champs Les champs indexed et stored sont très importants Toutes les combinaisons de valeur sont possibles : indexed=true, stored=false : on pourra interroger le champ, mais il faudra accéder au document principal dans la base documentaire si on veut sa valeur ; indexed=true, stored=true : on pourra interroger le champ, et accéder à sa valeur dans l index ; indexed=false, stored=true : on ne peut pas interroger le champ, mais on peut récupérer sa valeur dans l index ; indexed=false, stored=false : n a pas de sens à priori ; le seul intérêt est d ignorer le champ s il est fourni dans le document Solr.

Définition des champs (suite) Comment peut-on indexer un champ sans le stocker? c est notamment le cas pour les textes qui sont décomposés en termes : chaque terme est indexé indépendamment très difficile pour l index de reconstituer le texte d où l intérêt de conserver ce dernier dans son intégralité, à part C est une question de compromis : stocker une valeur prend plus d espace que l indexer Dans la situation la plus extrême, on dupliquerait la base documentaire en stockant chaque document aussi dans l index un stockage plus important dégrade les performances

Le squelette de schéma comprend également un champ calculé, le champ text. Les instructions copyfield indiquent qu au moment de l insertion d un document, on va copier certains champs dans celui-ci. le type du champ destination correspond à un mode particulier d indexation, éventuellement différent et complémentaire de celui du champ origine ; => par exemple le contenu d un titre est indexé comme une chaîne de caractères dans le champ title, et comme un texte "tokenisé" quand on le copie dans le champ text ; si toutes les occurrences de chaînes de caractères sont concaténées dans un même champ, on obtient, en prenant ce champ pour cible, une recherche plein-texte globale.

Bases de données documentaires et distribuées Cours NFE04 Recharger le schéma Après tout changement de schéma, il faut recharger l index. Pour recharger un index, à partir de l interface d administration, utilisez l option Reload après avoir sélectionné le core

Rechargement curl "http://localhost:8983/solr/movies/update/json?commit=true" \\ --data-binary @solr_doc.json -H "Content-type:application/json" Attention, si l index existant ne correspond pas au nouveau schéma, le rechargement échouera. Avec Solr, il est (plus) difficile de faire évoluer un schéma (qu avec BDD classique) Reconstruction (destruction puis validation) : curl http://localhost:8983/solr/movies/update \\ --data <delete><query>*:*</query></delete> \\ -H Content-type:text/xml; charset=utf-8 curl http://localhost:8983/solr/movies/update \\ --data <commit/> -H Content-type:text/xml; charset=utf-8