Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours programmation » Cours JAVA » Cours Framework JAVA

Introduction aux principales fonctionnalités du Framework Apache Solr

Introduction aux principales fonctionnalités du Framework Apache Solr
Participez au vote ☆☆☆☆☆★★★★★

François-Xavier Barreiro

Expert Technologique chez Groupe T2I

–

Agenda

•    Introduction

– Principales fonctionnalités de Solr

•    Aspects Techniques

•    Intégration de Solr dans nos projets

Introduction Apache Solr

«Open Source Entreprise Search Plateform»

–    Ecrit en Java

–    A partir du projet Apache Lucene (même socle commun qu’elasticsearch)

«Un moteur d’indexation et de recherche open source en java très très performant…»

«Taillé pour répondre aux défis du Big Data»


•  Indexation et recherche plein texte sur les données et le contenu

•  Filtres et Facettes

•  Recalcul avec l’API Solr facettes (exemple du champ date)

•  API Rest pour toutes les opérations (administration, indexation, recherches)

•  Formats : Json, XML, CSV, …

•  Indexation fulltext des documents

•  Utilise la bibliothèque java «Tika»

•  Fichiers Texte, PDF, Office, …

•  Solr Cloud    Cluster de serveurs Solr

•  Optimisé pour des gros volumes

•  Séparation de l’indexation et des recherches grâce à l’architecture distribuée qui garanti des temps de réponses constants au niveau des recherches

•  Hautement évolutif (Scalable)

•  Gère la réplication et distribution des données sur l’ensemble du cluster


Solr Cloud

• Construit sur Apache Zookeper

–  Configuration centrale et coordination pour l’ensemble du cluster

(elasticsearch est autonome et ne nécessite pas Zookeper)

Solr Cloud

•  Gestion de la montée en charge

•  «Shards», distribution de l’index sur plusieurs machines (volume des index)

–   Lorsque l’index approche les limitations de la machine

–   Diviser l’index en deux nouvelles partitions   Shard Splitting

•  «Replicas», copies multiples «read-only» de l’index (charge + continuité d’exploitation)

–   Pour adresser un grand volume de recherches (clients simultanés)

–   Pour gérer un grand volume d’indexations qui pénalisent les recherches

•  Séparer les recherches et l’indexation

–   Pour effectuer des backup de l’index (gestion du failover)

Interface d’administration

•  Tableau de bord, logs

•  Etat des collections et des nœuds du cloud

Interface d’administration

• Administration des données (Schéma, tests, validation des requêtes)

Prise en main

• Simple et rapide (avec des exemples)

1.    Téléchargement

2.    De zipper l’archive

3.    Démarrage : solr start –e techproducts

http://localhost:8983/solr/techproducts/browse

– Interface d’exemple «Velocity» illustrant les principales fonctionnalités

Aspects Techniques

Définition Indexation Requêtes des    des de

                                                                              données             données      recherche

Exemple de document à indexer dans solr :

{

"id": "1",

"category": "Informatique",

"title": "Apache Solr Entreprise Search Server",

"authors": "David Smiley and Eric Pugh"

}

Définition des données • Avec un fichier xml «Schema»

Définition des données

• L’analyse des champs texte est configurable

<field name=“fullText" type=“texte" indexed="true" stored=“false" />

Analyse champs texte

•    Filtres de caractères (0-n)

•    Enlever caractères html

•    Tokenizer (1)

•    Découpage des mots

•    Filtres sur les mots (0-n)

•    Lowercase, Stop words

Indexation des données

•  L’indexation s’effectue dans une «Collection» Solr

•  Indexation unitaires

» API Rest (flux json, xml, csv)

•  Importation de masse

» DIH (Data Import Handler)

Indexation des données «Unitaire»

• API Rest ( Exemple au format json)

curl -X POST -H 'Content-Type: application/json’ ‘http://localhost:8983/solr/books/update’

[{

"id": "1",

"title": "Apache Solr Entreprise Search Server",

"authors": "David Smiley and Eric Pugh"

},

{

"id": "2",

"title": "Solr Cookbook",

"authors": "Rafael Kuc"

}]

Importation données de masse

•  Data Import Handler

•  Implémentation d’un processeur java customisé accédant à une source de donnée (fichier csv, base de donnée, …)


•  Avec paramètre «Query»     (q)

–   Basiques

"title": "Apache Solr Entreprise Search Server"

"title": "Solr Cookbook"


• http://localhost:8983/solr/books/query?q=fullText: solr

–   Phrases

• http://localhost:8983/solr/books/query?q=fullText: " solr entreprise "

"title": "Apache Solr Entreprise Search Server"

–   Proximité, (~) suivi du nombre de positions

• …/query?q=fullText: " solr search "~1

–   Wildcard (*) "title": "Apache Solr Entreprise Search Server"

•  …/query?q=fullText: sol*

"title": "Apache Solr Entreprise Search Server"

"title": "Solr Cookbook"

•  Boolean

–   Par défaut l’opérateur OR

"title": "Apache Solr Entreprise Search Server"

                             • …/query?q=fullText:apache cookbook              "title": "SolrCookbook"

–   Autres opérateurs

• …/query?q=fullText: solr AND search NOT cookbook

"title": "Apache Solr Entreprise Search Server"


Intégration Solr dans nos projets

• Architecture                                      

Intégration Solr dans nos projets

•  Infrastructure

•  1 Serveur Linux (16 CPU, 24 GB RAM)

–   Volumes

» Shard

Environ 50 millions de documents

» 50 m. documents

Environ 50 GB d’Index sur disque

–   Performances (environ 750 utilisateurs, en dessous de la seconde)

                                                         » Requêtes de recherche         25 à 100 millisecondes

                                                         » Indexation (updates)            200 à 400 millisecondes

•  Les updates pénalisent les recherches

•  Recommandé d’effectuer des soft commit (intervalle de temps 1s, 5s,…) au lieu des hard commit (demande update instantanée)

Decouvrir ces documents

  • Cours pour démarrer avec le Framework Apache Jena

    Cours pour démarrer avec le Framework Apache Jena

  • Manuel d’utilisation d’Apache Mesos Framework [Eng]

    Manuel d’utilisation d’Apache Mesos Framework [Eng]

  • Support de cours sur les services web et le Framework Apache CXF

    Support de cours sur les services web et le Framework Apache CXF

  • Guide de démarrage avec le Framework Apache HBase

    Guide de démarrage avec le Framework Apache HBase

  • Cours développement d'application web avec le Framework Apache Pivot [Eng]

    Cours développement d'application web avec le Framework Apache Pivot [Eng]

  • Documentation pour débuter avec le Framework Apache Wicket et Eclipse JEE

    Documentation pour débuter avec le Framework Apache Wicket et Eclipse JEE

  • Formation sur le développement web avec le Framework Apache Cocoon

    Formation sur le développement web avec le Framework Apache Cocoon

  • Framework Apache UIMA cours pour débutant

    Framework Apache UIMA cours pour débutant

Articles connexes

  • Questionnaire MS Access -introduction
  • Comment faire une introduction pour une analyse de texte philosophique ?
  • TD ASRA: introduction à l'utilisation de pf avec correction
  • TD 8 : Introduction aux bases de données Le langage SQL
  • Exercice introduction aux systèmes de gestion de base de données
  • Pourquoi faut-il maîtriser les fonctionnalités avancées d'Excel ?
  • 16 meilleurs IDE / EDI pour en Django Python (Comparatif)
  • Tuto Python & Django : créer une page web
  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02