Soirée Search Lucene/Solr
Découvrez les outils open source de Search qui ont déjà convaincu de nombreuses entreprises, et qui est proposé par la fondation Apache: Lucene / Solr.
Dans la première partie de soirée, histoire de savoir de quoi on parle, Olivier vous présentera les projets Lucene et Solr, leurs composants, leur architecture, leurs features, et on saupoudrera tout ça de scalabilité avec SolrCloud (avec démo).
En deuxième partie de soirée, Olivier vous présentera l’écosystème (ou du moins une partie) qui gravite autour de Lucene /Solr: ManifoldCF qui permet de gérer les connexions aux sources de données (avec démo d’indexation de contenu et recherche en live grâce à Datafari) et Hadoop, car il faut bien parler de Big Data, et parce que Solr devient un des outils de référence pour faire du search sur Hadoop.
Avec tout ça vous aurez dans vos bagages de quoi gérer des Big projets avec du Big search dedans.
www.francelabs.com
www.datafari.com
Elastic search
Moteur de recherche
Crée en 2010 par Shay Banon
Basé sur Apache Lucene (+multi-nodes)
Développé en Java
Open source (Licence Apache)
La société a été crée en 2012
La version courante est 2.0
Site officiel: https://www.elastic.co/
Démarrer rapidement avec Apache Flink par Bilal Baltagi
- Présentation de l'éco Système Apache Flink
- Prise en main rapide
Bilal Baltagi a obtenu un master en analyse des données à l'Université Paris Nord - Paris 13. Il est actuellement consultant décisionnel chez Sarenza à Paris. Il intervient sur toutes les phases d'un projet décisionnel et Big data: recueil des besoins, conceptions, réalisations et accompagnement des utilisateurs. Bilal est de plus en plus intéressé à l'intersection de la Big Data avec la Business Intelligence et aime jouer avec Apache Flink!
Elastic search
Moteur de recherche
Crée en 2010 par Shay Banon
Basé sur Apache Lucene (+multi-nodes)
Développé en Java
Open source (Licence Apache)
La société a été crée en 2012
La version courante est 2.0
Site officiel: https://www.elastic.co/
Démarrer rapidement avec Apache Flink par Bilal Baltagi
- Présentation de l'éco Système Apache Flink
- Prise en main rapide
Bilal Baltagi a obtenu un master en analyse des données à l'Université Paris Nord - Paris 13. Il est actuellement consultant décisionnel chez Sarenza à Paris. Il intervient sur toutes les phases d'un projet décisionnel et Big data: recueil des besoins, conceptions, réalisations et accompagnement des utilisateurs. Bilal est de plus en plus intéressé à l'intersection de la Big Data avec la Business Intelligence et aime jouer avec Apache Flink!
Alphorm.com Formation Elastic : Maitriser les fondamentauxAlphorm
La recherche d’information dans les logs a toujours été chronophage tant au niveau humain que du traitement informatique : Connexion au serveur, localisation du fichier, choix du bon outil, rappel de la syntaxe, exécution de la commande, etc.
La société Elastic, éditeur du moteur de recherche ElasticSearch, édite dorénavant une pile de produits répondant spécifiquement au traitement des fichiers journaux et se résumant à « Toutes les réponses à vos questions sont dans vos logs ! ».
Cette formation d’initiation a pour objectif de vous apprendre à mettre en place la solution (stack) de monitoring elastic et à comprendre et configurer ses composants, suite Elastic (Beats, Logstash et Kibana).
La suite Elastic, qui se compose à ce jour d'Elasticsearch, Kibana, elasticsearch, APM, Beats, et va être principalement utilisé pour construire des moteurs de recherche, mais aussi agréger et manipuler des données logs.
Dans cette formation suite Elastic, nous aborderons toutes les fonctionnalités permettant de mettre en place une solution de monitoring complète.
Les points forts de la formation
- Formation pratique à hauteur de 80%.
- Formation fonctionnelle qui vous donne des compétences exploitables sur le terrain.
- Formation prenant en considération les besoins du marché.
Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014francelabs
Découvrez les outils open source de Search qui ont déjà convaincu de nombreuses entreprises, et qui est proposé par la fondation Apache: Lucene / Solr. Dans la première partie, histoire de savoir de quoi on parle, Aurélien vous présentera les projets Lucene et Solr, leurs composants, leur architecture, leurs features, et on saupoudrera tout ça de scalabilité avec SolrCloud.
En deuxième partie, Aurélien vous présentera l'écosystème (ou du moins une partie) qui gravite autour de Lucene /Solr: ManifoldCF qui permet de gérer les connexions aux sources de données (avec démo d'indexation de contenu et recherche en live), Hadoop, car il faut bien parler de Big Data, et parce que Solr devient un des outils de référence pour faire du search sur Hadoop (avec là encore une démo d'interaction Hadoop et Solr). Avec tout ça vous aurez dans vos bagages de quoi gérer des Big projets avec du Big search dedans.
Incrementally streaming rdbms data to your data lake automagicallyTimothy Spann
Incrementally streaming rdbms data to your data lake automagically using Apache NiFi to load Oracle data to Apache Hive, Apache Kudu, Apache Impala, Apache HDFS
Ce support explique les concepts de base de Big Data Processing. Elle aborde les parties suivantes :
Série de vidéos : https://www.youtube.com/watch?v=1JAljjxpm-Q
- Introduction au Big Data
- Système de stockage en Big Data
- Batch Processing et Stream Processing en Big Data
- Aperçu bref de l’écosystème de Hadoop
- Aperçu de l’écosystème des outils du Bid Gata
- Big data stream processing avec Kafka écosystème
- Architecture de Kafka (Brokers, Zookeeper, Procuder, Consumer, Kafka Streams, Connecteurs)
- Comment démarrer un cluster de brokers KAFKA
- Création et configuration des Topics
- Création d’un Java Kafka consumer
- Création d’un Java Kafka Produder
- Kafka Producer et Kafka Consumer dans une application basée sur Spring
- Kafka Streams
- Intégration de Kafka dans Spring Cloud.
Mot clés : Big data, Big Data Processing, Stream Processing, Kafka, Kafka Streams, Java, Spring
Bon apprentissage
Php 2 - Approfondissement MySQL, PDO et MVCPierre Faure
Introduction au langage de programmation PHP.
Présentation réalisée la première fois le lundi 10 mars 2014 à l'IIM : Institut de l'Internet et du Multimédia pour les années préparatoires.
Cette présentation a pour but d'approfondir les compétences PHP des élèves : utiliser des bases de données, comprendre PDO et le modèle MVC (basique).
Après présentation orale de ces slides, des exercices de mise en pratique ont été réalisés en Atelier avec les élèves.
L'exercice principal était de construire une plateforme similaire à twitter selon un modèle MVC.
Voici le plan de la présentation :
• Les bases de données : MySQL
- Principe
- phpMyAdmin
- Interagir avec une BDD
• Les fonctions
- La machine à carottes
- Exemple avec MySQL
- Les fonctions PHP
• Modèle Vue Contrôleur - MVC
- Principe
- Mise en pratique
• Quelques trucs à savoir a.$_FILES et $_POST
- $_SESSION
- L’indentation
- PHP + HTML = ?
Solr is an open source, widely used, popular IR machine. It can be used for simple sentiment analysis and sentiment retrieval tool. Its multi-language analyzers together with UIMA (Unstructured Information Management Architecture) framework can be extended for sentiment extraction. Each sentence passes through a series of pluggable annotators. Entity and its associated polarity are detected for each sentence. Polarity of each sentence is stored into Solr index. Persistent model files can be created from training data and accessed at run time.
Support Dot Net avec C#. Ce cours traite les points suivants :
- Architecture .Net
- Les bases de C#
- Objet et Classe
- Héritage
- Encapsulation
- Polymorphisme
- Les exceptions
- Les entrées sorties
- Les interfaces graphiques
- Le multi Threading
- Programmation réseaux (Sockets et DataGram)
- Accès aux bases de données
Aurélien Mazoyer from France Labs gives users a step-by-step breakdown of everything ManifoldCF is capable of. He also works through a scenario that shows what can happen when using Apache ManifoldCF with Apache Solr.
Besoin de rien Envie de Search - Presentation Lucene Solr ElasticSearchfrancelabs
Cette présentation donne un comparatif sur les technologie de recherche open source que sont Apache Solr et ElasticSearch. Après avoir introduit brièvement les notions de moteur de recherche open source pour entreprise, Lucene, Solr et ElasticSearch seront expliqués.
Alphorm.com Formation Elastic : Maitriser les fondamentauxAlphorm
La recherche d’information dans les logs a toujours été chronophage tant au niveau humain que du traitement informatique : Connexion au serveur, localisation du fichier, choix du bon outil, rappel de la syntaxe, exécution de la commande, etc.
La société Elastic, éditeur du moteur de recherche ElasticSearch, édite dorénavant une pile de produits répondant spécifiquement au traitement des fichiers journaux et se résumant à « Toutes les réponses à vos questions sont dans vos logs ! ».
Cette formation d’initiation a pour objectif de vous apprendre à mettre en place la solution (stack) de monitoring elastic et à comprendre et configurer ses composants, suite Elastic (Beats, Logstash et Kibana).
La suite Elastic, qui se compose à ce jour d'Elasticsearch, Kibana, elasticsearch, APM, Beats, et va être principalement utilisé pour construire des moteurs de recherche, mais aussi agréger et manipuler des données logs.
Dans cette formation suite Elastic, nous aborderons toutes les fonctionnalités permettant de mettre en place une solution de monitoring complète.
Les points forts de la formation
- Formation pratique à hauteur de 80%.
- Formation fonctionnelle qui vous donne des compétences exploitables sur le terrain.
- Formation prenant en considération les besoins du marché.
Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014francelabs
Découvrez les outils open source de Search qui ont déjà convaincu de nombreuses entreprises, et qui est proposé par la fondation Apache: Lucene / Solr. Dans la première partie, histoire de savoir de quoi on parle, Aurélien vous présentera les projets Lucene et Solr, leurs composants, leur architecture, leurs features, et on saupoudrera tout ça de scalabilité avec SolrCloud.
En deuxième partie, Aurélien vous présentera l'écosystème (ou du moins une partie) qui gravite autour de Lucene /Solr: ManifoldCF qui permet de gérer les connexions aux sources de données (avec démo d'indexation de contenu et recherche en live), Hadoop, car il faut bien parler de Big Data, et parce que Solr devient un des outils de référence pour faire du search sur Hadoop (avec là encore une démo d'interaction Hadoop et Solr). Avec tout ça vous aurez dans vos bagages de quoi gérer des Big projets avec du Big search dedans.
Incrementally streaming rdbms data to your data lake automagicallyTimothy Spann
Incrementally streaming rdbms data to your data lake automagically using Apache NiFi to load Oracle data to Apache Hive, Apache Kudu, Apache Impala, Apache HDFS
Ce support explique les concepts de base de Big Data Processing. Elle aborde les parties suivantes :
Série de vidéos : https://www.youtube.com/watch?v=1JAljjxpm-Q
- Introduction au Big Data
- Système de stockage en Big Data
- Batch Processing et Stream Processing en Big Data
- Aperçu bref de l’écosystème de Hadoop
- Aperçu de l’écosystème des outils du Bid Gata
- Big data stream processing avec Kafka écosystème
- Architecture de Kafka (Brokers, Zookeeper, Procuder, Consumer, Kafka Streams, Connecteurs)
- Comment démarrer un cluster de brokers KAFKA
- Création et configuration des Topics
- Création d’un Java Kafka consumer
- Création d’un Java Kafka Produder
- Kafka Producer et Kafka Consumer dans une application basée sur Spring
- Kafka Streams
- Intégration de Kafka dans Spring Cloud.
Mot clés : Big data, Big Data Processing, Stream Processing, Kafka, Kafka Streams, Java, Spring
Bon apprentissage
Php 2 - Approfondissement MySQL, PDO et MVCPierre Faure
Introduction au langage de programmation PHP.
Présentation réalisée la première fois le lundi 10 mars 2014 à l'IIM : Institut de l'Internet et du Multimédia pour les années préparatoires.
Cette présentation a pour but d'approfondir les compétences PHP des élèves : utiliser des bases de données, comprendre PDO et le modèle MVC (basique).
Après présentation orale de ces slides, des exercices de mise en pratique ont été réalisés en Atelier avec les élèves.
L'exercice principal était de construire une plateforme similaire à twitter selon un modèle MVC.
Voici le plan de la présentation :
• Les bases de données : MySQL
- Principe
- phpMyAdmin
- Interagir avec une BDD
• Les fonctions
- La machine à carottes
- Exemple avec MySQL
- Les fonctions PHP
• Modèle Vue Contrôleur - MVC
- Principe
- Mise en pratique
• Quelques trucs à savoir a.$_FILES et $_POST
- $_SESSION
- L’indentation
- PHP + HTML = ?
Solr is an open source, widely used, popular IR machine. It can be used for simple sentiment analysis and sentiment retrieval tool. Its multi-language analyzers together with UIMA (Unstructured Information Management Architecture) framework can be extended for sentiment extraction. Each sentence passes through a series of pluggable annotators. Entity and its associated polarity are detected for each sentence. Polarity of each sentence is stored into Solr index. Persistent model files can be created from training data and accessed at run time.
Support Dot Net avec C#. Ce cours traite les points suivants :
- Architecture .Net
- Les bases de C#
- Objet et Classe
- Héritage
- Encapsulation
- Polymorphisme
- Les exceptions
- Les entrées sorties
- Les interfaces graphiques
- Le multi Threading
- Programmation réseaux (Sockets et DataGram)
- Accès aux bases de données
Aurélien Mazoyer from France Labs gives users a step-by-step breakdown of everything ManifoldCF is capable of. He also works through a scenario that shows what can happen when using Apache ManifoldCF with Apache Solr.
Besoin de rien Envie de Search - Presentation Lucene Solr ElasticSearchfrancelabs
Cette présentation donne un comparatif sur les technologie de recherche open source que sont Apache Solr et ElasticSearch. Après avoir introduit brièvement les notions de moteur de recherche open source pour entreprise, Lucene, Solr et ElasticSearch seront expliqués.
Solr + Hadoop - Fouillez facilement dans votre système Big Datafrancelabs
Un système Hadoop a pour but de facilement gérer le Big Data, que ce soit en termes de stockage comme en termes de calculs. Il ne se focalise pas sur l’exploration des données qu’il héberge. Le moteur de recherche Apache Solr devient l’outil de recherche de référence dans l’écosystème Hadoop, adopté par Cloudera et HortonWorks. Dans cette intervention, ils présentent d’abord un historique des 2 projets, pour bien comprendre leurs liens. Ils expliquent ensuite les différents niveaux d’intégrations possibles, et ils terminent par une démonstration d’intégration, afin de comprendre les avantages d’utiliser Solr pour explorer le big data d’un Hadoop.
Apache Solr pour le eCommerce chez Allopneus avec France Labs - Lib'day2014francelabs
Allopneus présente avec France Labs la mise en oeuvre d'Apache Solr comme moteur de recherche pour son site de eCommerce, avec des infos sur les fonctionnalités, la mise en oeuvre et l'état du projet.
Sitecore Dev User Group Meetup in Milwaukee - Perficient - Rick BauerRick Bauer
Hosted at Perficient Milwaukee, Rick Bauer, Stephen Tynes, Nicolas Bordeleau & Isabel Tinoco along with the Sitecore UG Meetup presented a webinar to discuss Dev & Marketing perspectives along with a Coveo 4 update.
In this webinar we discussed a set of steps and alternatives to the Google Search Appliance, now that is phasing out. Chad Johnson, evangelist from Coveo, joined us to share his expertise and solutions to replace the GSA. Watch on demand: https://mcplusa.wistia.com/medias/otxbl7c2yu
Lucene - 10 ans d'usages plus ou moins classiquesSylvain Wallez
Retour d'expérience sur 4 projets utilisant Lucene dans des contextes très différents : recherche documentaire, ecommerce, moteur de pub et matching d'affinités musicales
Chris Bradford & Matt Overstreet review several Cassandra use cases we’ve encountered in state and federal government. C* solves many big data problems when storing, enriching and improving access to data.
Apache Solr for eCommerce at Allopneus with France Labs - Lib'Day 2014francelabs
Allopneus presents together with France Labs its search engine project, based on Solr, for its eCommerce website. It includes information on the functionnalities, the project setup and the statu quo.
Présentaion Carrefour des Possibles, dominante "Do It Yourself" de la Fing, de Mars 2012, dont le thème est "ReFaire : nouvelles pratiques, nouvelles fabriques".
Panorama de l'offre de logiciels libres pour bibliothèque v2Marc Maisonneuve
Introduction : définitions du logiciel libre et du logiciel open source
1. Typologie des logiciels métier pour bibliothèque
2. La place des logiciels libres ou open source dans cet ensemble
3. Quelques exemples de réalisations s’appuyant sur l’emploi de logiciels libres ou open source
4. Les caractéristiques, les avantages et les inconvénients d’un logiciel libre ou open source
5. Le choix d’un logiciel libre ou open source : à quoi dois-je penser ?
A short introduction on Apache Solr :
- what is the project
- base features (document indexing, querying)
- advanced features (faceting, highlighting...)
(french presentation)
Présentation d'Elasticsearch lors de Devoxx France 2012
Contenu en français
English translation available here : http://www.slideshare.net/dadoonet/elasticsearch-devoxx-france-2012-english-version
Recherche full-text et recommandation, deux mondes à part? Nous verrons qu’il est possible de marier Lucene (Elastic Search/Solr) et filtrage collaboratif afin de produire un système de recommandation flexible et scalable. Cela passera par un aperçu des dernières sorties : la plateforme Confluent (Kafka) ainsi que Mahout 0.10 (avec Samsara).
Jabes 2011 - Actualités et projets de l'Abes "Les API Sudoc, le Sudoc autrement"ABES
Jabes 2011 - Actualités et projets de l'Abes "Les API Sudoc, le Sudoc autrement", Géraldine Lambert, Christophe Bonnefond, Abes, chefs de projet "API Sudoc", dans le cadre des Journées Abes 2011
Créer un moteur de recherche avec des logiciels libresRobert Viseur
Lorsque l’on parle de moteur de recherche, les noms de Google, Bing ou Yahoo! viennent immédiatement à l’esprit. La taille de ces moteurs (plusieurs milliards de pages indexées), l’importance des infrastructures (grands centres de données) et la pertinence des résultats de recherche peuvent donner l’impression que les développements spécifiques sont devenus impossibles ou sans intérêt.
La création de moteurs de recherche spécialisés reste cependant possible, et utile pour certains usages particuliers (ex.: moteurs de recherche d’entreprise, mise en place de systèmes de veille, etc.). Pour ce faire, le développeur peut s’appuyer sur les interfaces de programmation (API) généralement mises à disposition par les moteurs de recherche commerciaux mais aussi sur les très nombreux composants et logiciels libres existants. Ces derniers couvrent la collecte des données textuelles, leur analyse, leur indexation et leur présentation.
La présentation détaille les différentes étapes de création d’un moteur de recherche. Les outils libres disponibles, ainsi que leurs limites et cadres d’utilisation privilégiés, sont ensuite présentés.
Jabes 2011 - Actualités et projets de l'Abes "Ouverture des données du Sudoc,...ABES
Jabes 2011 - Actualités et projets de l'Abes "Ouverture des données du Sudoc, de Calames et de Star", Yann Nicolas, Abes, chef du département "Etudes et Projets", dans le cadre des Journées Abes 2011
Solr and Elasticsearch in Action (at Breizhcamp)Lucian Precup
Lucene @ Breizhcamp
Lucene, la fameuse technologie pour l’indexation, la recherche et l’analyse du texte a été présente à l'édition 2012 de Breizhcamp à travers deux sessions « Tools In Action » : ElasticSearch et Solr.
Allant au-delà du tutorial, ces deux sessions ont permis de découvrir des patterns d’architecture pour l'intégration d'un moteur de recherche et navigation dans un SI ainsi que de comprendre l’alternative qu’offrent les moteurs de recherche et les approches NoSQL aux bases de données relationnelles. Des subtilités sur l’analyse du texte ont été abordées afin de montrer les forces mais aussi les limites de la magie Lucene. Les démonstrations de chaque technologie et des outils dans leur écosystème ont rendu la présentation plus interactive.
La vidéo de la présentation se trouve sur Parleys (http://www.parleys.com/#st=5&id=3351).
Similaire à Presentation Lucene / Solr / Datafari - Nantes JUG (20)
2. Introduction
A propos :
Cofondateur de la société France Labs
Développeur (principalement Java)
Formateur Solr
A propos de France Labs :
Startup créée en 2011
Partenaire officiel de LucidWorks pour la France
3. Introduction
Domaine:
Moteurs de recherche d'entreprise Open Source
2 activités:
Consulting/support/formation sur
Lucene/Solr/ElastiSearch/LucidWorks/Datafari
R&D (algorithmes de ranking, connecteurs, réseaux
sociaux)
4. Pourquoi Lucene/Solr?
Besoins d'entreprise : avoir une bonne solution
logicielle, avec un support fiable
Par conséquent notre choix de Lucene/Solr :
Large communauté autour de Lucene/Solr
Schémas de support professionnel pour Lucene/Solr
Solr 4 pensé pour le Big Data
Utilisé par Twitter, Linkedin, eBay, Salesforce, IBM, Apple
5. Présentation de Solr
Architecture SOLR
Scoring
Indexation
Requêtage
Fonctionnalités
Solr Cloud
Solr et son écosystème
6. Présentation de Solr
Architecture SOLR
Scoring
Indexation
Requêtage
Fonctionnalités
Solr Cloud
Solr et son écosystème
11. Lucene
Créé en 2000 par Doug Cutting. Version Actuelle :
Lucene v. 4.10.3 Décembre 2014)
Projet Open Source, Apache depuis 2001
Librairie de recherche “full-text”
Rapide, stable, performant, modulable
100% Java (pas de dépendances)
14. Document
FieldTerm
Document, fields, terms
Document : unité d’indexation
Field : partie d’un document, contient les données
Term : unité atomique d’un champ
Si on veut indexer un livre, on aura:
• Title : Lucene in Action
• Author : Erik Hatcher, Otis Gospodnetić
• Description : Lucene is a gem in the open-source...
• Content : …
• …
15. Lucene
Un outil qui permet:
De créer un index à partir de
documents
D’effectuer des recherches
dans cet index
INDEX
16. Lucene
Différence avec une base de données :
Optimisé pour récupérer un doc à partir de son
contenu
Résultats scorés
Non relationnelle, structure non fixe
Champs qui peuvent contenir plusieurs valeurs
22. Solr par rapport à Lucene
Lucene « embarqué » dans une webapp
Créé en 2004 par Yonik Seeley à CENT Networks
In 2006, Solr devient open-source et été cédé à la
Apache Software Foundation
En 2010, fusion des projets Lucene et Solr
Version Actuelle : Solr 4.10.3 (Décembre 2014)
23. Solr par rapport à Lucene
APIs XML/HTTP de type REST
Configuration par fichiers XML
Mécanisme de Cache, Réplication
Interface admin web
24. Solr par rapport à Lucene
Interfaces HTTP pour :
ajouter des documents (POST)
• http://localhost:8983/solr/update
effectuer des recherches (GET)
• http://localhost:8983/solr/select
28. Surcouche
Besoin (parfois) d’une surcouche:
Interface WEB pour le client
Crawl des documents sur les différents systèmes
Gestion de la sécurité
Statistiques
Exemples de solutions « clé en main » :
Constellio
LucidWorks
Datafari
32. Récupérer les bons résultats…
… et seulement ceux là
Precision
Pourcentage de docs pertinents sur les
docs retournés
Matchs corrects/total retourné
Recall
Pourcentage de docs pertinents
retournés sur le total des docs pertinents
Matches corrects/(matchs
corrects+matchs manqués)
Trouver un bon compromis…
Documents
Pertinents
Document
Retournés
Documents
Pertinents
Docs retournés
et pertinents
Recherche pertinente
33. Scoring en Lucene
Formule paramètrable
Combinaison de
Boolean Model (Match)
Vector Space Model (Scoring)
• Term Frequency
• Inverse Document Frequency…
Boosts…
34. TF-IDF
Term Frequency (TF) :
Fréquence d’un Terme dans un document
France Labs
Bienvenue sur le site de France Labs.
Créée en 2011, France Labs est une
société composée d'experts en
gestion de l'information. Que ce soit
pour de l'expertise, pour nos produits
ou pour nos solutions métiers, nous
faisons en sorte que vous augmentiez
votre efficacité par une meilleure
exploitation de vos données.
France Labs, spécialiste des outils
de recherche open source, propose
des plugins innovants et des
services de conseil, intégration et
maintenance, sur Lucene, Solr et
Constellio. Europe, nous sommes le
partenaire de Constellio, solution
complète de recherche.
35. TF-IDF
Inverse Document Frequency (IDF):
Rareté du terme dans l’ensemble de l’index
Expertise Lucene
Souhaitant intervenir plus en amont
dans la vie de l’entreprise, pour vous
proposer toujours plus de conseils à
partir de nos expertises, Expertise &
Conseil a créé Formation & Conseil :
une structure de formation destinée
aux acteurs de performance de
l’entreprise.
Apache Lucene, la fameuse
technologie pour l’indexation, la
recherche et l’analyse du texte est la
base de plusieurs serveurs Open
Source. La présentation détaillera
Solr et ElasticSearch sous la forme «
Tools in Action » - démonstrations
en direct des différents outils.
36. TF-IDF
Norms :
Taille des champs
Solr
Titre : Les moteurs de recherche
Content :
Apache Solr est une librairie de
recherche full text en open source.
Elle propose des API REST, des
mécanismes de cache, réplication et
mise à l’échelle.
Titre : Encyclopédie
Content :
Solr est une moteur de recherche
open source. Elastic Search est un
moteur de recherche open source
(mais quand même un peu moins
bien)
….
….
…. Le chat est une animal de
compagnie avec des oreilles.
37. Boosts:
Privilégier un doc en particulier…
Privilégier un champ par rapport à un autre…
Privilégier les phrases exactes…
Privilégier les docs qui matchent une requête…
Privilégier les docs par rapport au résultat d’une fonction …
Privilégier les docs géolocalisés les plus proches….
Boosts
38. Boosts
Boosts:
Boost sur le Titre
Fonctionnalités
Titre : Fonctionnalités
Content :
Interface d'administration en HTML,
Réplication, Mise en cache
Recherche distribuée, Recherche à
facettes, Recherche géospatiale ,API
HTTP/XML, JSON et bibliothèques
pour les langages de script Python et
Ruby, Intégration des bases de
données
Titre : Highlighter
Content :
Cette fonctionnalité permet de mettre
en surbrillance les termes recherchés.
Ce principe est le même que les pages
"en cache" de Google où les termes
recherchés apparaissent surlignés en
jaune.
C'est une fonctionnalité puissante et
pratique.
41. Présentation de Solr
Architecture SOLR
Scoring
Indexation
Requêtage
Fonctionnalités
Solr Cloud
Solr et son écosystème
42. Le crawling de documents n’est PAS
le job de Solr
Mais il existe de nombreux outils
pour cela :
DIH
Nutch
Aperture
Manifold CF
Google Connectors
Crawling
43. Préparer les documents
Convertir en XML, JSON, CSV (ou document riche avec Tika)
Peut contenir plusieurs Docs
Indexation
44. Poster les documents par HTTP
Avec cURL (linux)
• Ex : curl http://localhost:8983/solr/collection1/update -H
"Content-type:text/xml" --data-binary @mem.xml
Post.jar et Post.sh
• Ex : java -jar post.jar *.xml
Indexation
45. Avec des clients spécifiques:
SolrJ
• Client le plus évolué
SolrNet
rsolr
SolPython
SolPerl
Solarium
scalikesolr
…
Clients
46. Documents visibles une fois commités
Possibilité d’utiliser le « soft-commit »
Pour avoir du NRT
Latence d’indexation
47. Pour la configuration de Solr
Pour la configuration de Solr
(Presque) tout se passe dans 2 fichiers:
Schema.xml
• Décrit les données à indexer
SolrConfig.xml
• Comportement interne du serveur et
interactions avec le monde extérieur
49. Schema
Et des types de champs:
Entier
Date
String
• Un seul morceau
Text
• Text découpé et normalisé
• Avec un analyzer spécifique
50. Analyzer
Coquilles SaintJacques
WordDelimiter
Coquilles Saint Jacques
Document Analysis
coquilles saint jacques
LowerCaseFilter
WhitespaceTokenizer
Coquilles SaintJacques
Coquilles saint-jacques
WordDelimiter
Coquilles saint jacques
Query Analysis
coquilles saint jacques
LowerCaseFilter
WhitespaceTokenizer
Coquilles saint-jacques
54. Présentation de Solr
Architecture SOLR
Scoring
Indexation
Requêtage
Fonctionnalités
Solr Cloud
Solr et son écosystème
55. Première requête
URL :
http://localhost:8983/solr/collection1/select...
HTTP GET request
Web browser
Curl
SolrJ
…
56. Structure de la requête
http://localhost:8983/solr/collection1/select
?q=*:*&start=0&rows=10&fl=description
/solr/ : contexte de l’application web où Solr est installé
/collection1: Collection (ou index) de Solr
select : request handler
Après le ? => paramètres non ordonnés
58. Type de requêtes
Type But Exemple
TermQuery
Simple terme
Peut être spécifique à un
champ
Tarte
Type:Dessert
PhraseQuery
Match de plusieurs
termes dans l’ordre
« tarte aux pommes"
RangeQuery Fourchette
[A TO Z]
{A TO Z}
WildcardQuery Lettres manquantes
j*v?
f??bar
PrefixQuery
Tous les termes qui
commencent par X.
cheese*
FuzzyQuery Distance de Levenshtein manger~
BooleanQuery
Agrégation de plusieurs
queries
manger AND
cheese* -cheesecake
67. Fonctionnalité
Joining
Possibilité de faire une jointure sur plusieurs
indexes (clé primaire -> clé secondaire)
Mais à éviter
Préférer la dénormalisation
70. Et les vôtres…
Solr est très orienté plugin
Possibilité de surcharger quasiment tout…
71. Configuration de Solr
Pour la configuration de Solr
(Presque) tout se passe dans 2 fichiers:
Schema.xml
• Décrit les données à indexer
SolrConfig.xml
• Comportement interne du serveur et
interaction avec le monde extérieur
72. Exemple:
Solrconfig.xml permet le paramètrage :
Request Handler
Composants associés (autocomplete, highlighting)
Caches, Fréquences de commits etc…
Bref, presque tout le reste…
75. Présentation de Solr
Architecture SOLR
Scoring
Indexation
Requêtage
Fonctionnalités
Solr Cloud
Solr et son écosystème
76. Solr Cloud
Nouvelle architecture de Solr pour gérer la scalabilité
Nouveau système de mise à l’échelle de Solr
Pack 2 en 1
• Distribution
- Volumétrie élevée
• Réplication
- Répartition de la charge
- Haute dispo
Architecture flexible
77. Zookeeper
Logiciel de gestion de configurations pour
système distribués
Contient les configs des indexs de Solr
Cloud
Les Solr s’enregistrent et se désenregistrent
auprès du Zookeeper
Statuts des shards enregistrés
78. Nouvelles notions
Sharding
Un Shard est un morceau d’index
Une recherche distribuée se fait sur tous les shards (ie sur
tout l’index)
Utile pour gérer une grosse volumétrie de documents
Shard3
Requêtes
Shard1 Shard2
Résultats
Aggrégés
Sous-Requêtes
79. Nouvelles notions
Leader et Replica pour la réplication
On n’a pas de maître/esclave mais des leader/replica
• Un replica peut devenir leader si son leader tombe
Le leader et le replica contiennent le même shard
Utile pour répartir la charge/assurer une haute dispo
Leader
Shard 1
Replica 2
Shard 2
Replica 1
Shard 1
Load Balancer
Requêtes Requêtes Requêtes
80. 1 index- 2 shards – 2 replicas
Un exemple!
On veut un index, réparti sur 2 shards
(ie : coupé en 2)
Chaque shard sera répliqué 1 fois
Donc 4 machines
INDEX
81. On démarre la première machine, envoie la
configuration et spécifie le nombre de shards voulus
Solr Cloud
Zookeeper
ConfigIndex1
Leader Shard1
82. On démarre la deuxième machine, sans lui spécifier
de configuration mais en pointant sur le Zookeeper
Solr Cloud
Zookeeper
Leader Shard2Leader Shard1
83. On démarre la 3ème machine, sans lui spécifier de
configuration mais en pointant sur le Zookeeper
Solr Cloud
Zookeeper
Leader Shard2
Replica Shard1
Leader Shard1
84. Replica Shard1
On démarre la 4ème machine, sans lui spécifier de
configuration mais en pointant sur le Zookeeper
Solr Cloud
Zookeeper
Leader Shard2
Replica Shard2
Leader Shard1
85. Indexation
Distribution automatique des updates
Comment?
On envoie les docs à n’importe quelle machine
Solr se charge de les transmettre à la bonne machine
87. Recherche
Distribution des recherches automatiques
Hors SolrJ :
On registre les shards dans le load balancer
Avec SolrJ :
On utilise un objet CloudSolrServer
• Pointé sur Zookeeper
• Gère le load balancing
89. Avantages
Architecture très flexible
En cas d’augmentation de charge
• Ajout de machines qui pointent sur Zookeeper
• Si pas de client intelligent
- Enregistrement des machines dans le Load Balancer
En cas de diminution de charge
• Eteindre des machines
Zookeeper
Gestion centralisée des configurations
Visualisation du statut des shards
93. Solr 5
Sortie imminente
Plus un WAR mais une application
Nouvelles fonctionnalités :
IDF distribué
Stats component amélioré
Solr 4 : apport de SolrCloud
Solr 5 : maturité, simplification à l’usage
94.
95. Présentation de Solr
Solr et son écosystème
Crawling des données
Exemple de UI
Outils sémantiques
Hadoop
96. Présentation de Solr
Solr et son écosystème
Crawling des données
Exemple de UI
Outils sémantiques
Hadoop
97. Solr ne crawle PAS les données
Besoin d’un crawler pour :
Connexion au système externe à crawler
Récupération des données
Gestions des autorisations
Role
98. Mode Push ou Pull
Crawling normal ou incrémental
Réglage de l’impact sur le système
crawlé
Throttling
Scheduling
En cas de documents riches (Pdf, Word):
Extraction du contenu
Role
99. Apache Tika
Contribution de Solr
Détection du Mime-type
Embarque des librairies pour:
• Lire le contenu
• Extraire les meta-données
Extension supportés:
• XHTML
• MS Office (OLE2 and OOXML)
• OpenDocument
• PDF
• RTF
• Zip
• Audio/Video/Image files
Extraction de contenu
100. Les crawlers
Differents Crawlers
Nutch
• Crawler web distribué
DIH
• Contrib de Solr
• Crawl DB, XML
Aperture
• File, Web
Et Framework
Google Enterprise Connector
Manifold CF
101. Manifold CF
Basé sur « Connector Framework » développé par
Karl Wright pour la MetaCarta Appliance
Donné à l’Apache Software Foundation en 2009
(première version 2011)
Mai 2012 : sortie d’incubation
Version actuelle 1.8.1 (Février 2015)
103. Differents connecteurs pour :
Content Repositories :
• SharePoint
• Windows Share
• CMIS (Alfresco)
• DB
• RSS
• Wiki
Authorities:
• AD
• LDAP
Output repositories :
• Solr
• Elastic Search
Manifold CF
104. 2 composants principaux:
Pull agent:
• Contient les connecteurs (repository et output connectors)
• Récupère les données à partir des différents repositories
• Et les push avec leurs ACLs aux output connectors
Manifold CF
Pull Agent
105. 2 composants principaux:
Authority service:
• Contient les authority connectors
• Liste de tous les tokens pour l’utilisateur courant
Manifold CF
106. Intégration avec Solr
Exemple : crawl de fichiers avec autorisation
• Environnement :
- File Share Windows
- Active Directory
• Indexer les fichiers et respecter les droits à la requête
Manifold CF
107. Configuration côté Manifold CF
Configuration du connecteur Samba
Configuration du connecteur AD
Configuration du connecteur Solr
Manifold CF
108. Modification du schéma Solr
Ajout de champs pour indexer les ACLs
• AllowFile, DenyFile, AllowDirectory, DenyDirectory…
Ajout d’un plugin à Solr (MCF Search Plugin) pour interroger Manifold CF pour
obtenir les infos d’utilisateur
Manifold CF
109. Manifold CF
AD
Manifold CF
pull Agent
Connecteur
JCIFS
Connecteur
Solr
Docs and
access tokens
Get User
access token
Repositories Authorities
Manifold CF
OutputSolr
MCF
Search
Plugin
Indexation
Manifold CF
authority
service
Connecteur
AD
Windows
Share
110. Manifold CF
AD
Manifold CF
pull Agent
Connecteur
JCIFS
Connecteur
Solr
Docs and
access tokens
Get User
access token
Repositories Authorities
Manifold CF
Output
Windows
Share
Solr
MCF
Search
Plugin
Requête
Manifold CF
authority
service
Connecteur
AD
Front End Search authentifié
Filtre les docs suivant
leurs ACLs et les infos
d’utilisateurRésultats autorisés
112. Présentation de Solr
Solr et son écosystème
Crawling des données
Exemple de UI
Outils sémantiques
Hadoop
113. AjaxFranceLabs
Inspiré de AjaxSolr
Client Javascript/Ajax
Fournit plusieurs composants:
Un Manager
• Gère la connexion avec le serveur
Et des widgets
• Composant graphique et logique
116. Présentation de Solr
Solr et son écosystème
Crawling des données
Exemple de UI
Outils sémantiques
Hadoop
117. Le sémantique n‘est pas le travail de Solr
Fait seulement de la recherche full-text (mais
le fait bien )
Solr
Il existe des plugins pour cela
• UIMA
• GATE
• OpenNLP
Sémantique
118. Sémantique
UIMA (Unstructured Information Management Architecture)
Framework Apache
Plugin Solr
Côté indexation
Contient un pipeline d’Annotators
• Open Calais
• AlchemyAPI
• OpenNLP
• …
Chaque annotator va rajouter des métadonnées au document
119. UIMA
Ex : OpenNLP
Part of speech
• Verbe nom…
Extraction d’entités
• Lieu
• Personne
120. Présentation de Solr
Solr et son écosystème
Crawling des données
Exemple de UI
Outils sémantiques
Analytics
Hadoop
125. Hadoop
Scénarios Big Data
Text mining
Création et analyse de graphes
Reconnaissance de patterns
Moteurs de recommandations, ciblage publicité
Analyse de menaces, surveillances de marchés
126. Hadoop
Traiter des grands volumes de données en un
minimum de temps
Stocker des immenses volumes de données
Fonctionne sur machines de configuration faible et
peu coûteuses
128. Hadoop
Couche stockage (HDFS)
Système de fichier distribué
Utilise les disques « normaux » de chacun
des nœuds…
…pour donner l’impression de n’utiliser
qu’un seul énorme disque
Fiable (données répliquées 3 fois)
129. Hadoop
Couche traitement (Map Reduce)
Hadoop exécute des jobs Map Reduce
Notre algo doit donc implémenter:
• Un mapper
• Un reducer
Pour être executé de manière distribuée par
Hadoop en tant que job
130. Clé1 : Val1
Clé2 : Val2
Clé3 : Val3
Clé4 : Val4
Hadoop
Mapper
Prend des données en entrée
Et les transforme en paire de clé valeur
Mapper
131. Clé 1 : Val1
Clé 2 : Val2
Clé 1 : Val3
Clé 2 : Val4
Reducer
Combine les valeurs ayant la même clé
Clé1 : Val5
Clé2 : Val6
Reducer
Hadoop
132. Hadoop
Un exemple simple?
On a en entrée plusieurs textes
On veut compter le nombre d’occurrences
des mots
De manière distribuée
En utilisant un job Map Reduce
Datafari
Datafari est notre
solution open source de
recherche d'entreprises,
basée sur Lucene, Solr,
et le framework de
connecteurs Apache
ManifoldCF.
Solr
Apache Solr est une
couche web open source
basée sur la librairie de
recherche Apache
Lucene. Elle ajoute des
fonctionnalités de
serveur web, du
faceting.
Lucene
Apache Lucene est un
moteur de recherche et
d'indexation, en open
source.
133. Apache : 4
Solr : 2
Lucene : 3
…
Apache : 1
Apache : 1
Solr : 1
Lucene : 1
…
Apache : 1
Solr : 1
Lucene : 1
…
Apache : 1
Lucene : 1
…
Hadoop
Datafari
Datafari est notre
solution open source de
recherche d'entreprises,
basée sur Lucene, Solr,
et le framework de
connecteurs Apache
ManifoldCF.
Solr
Apache Solr est une
couche web open source
basée sur la librairie de
recherche Apache
Lucene. Elle ajoute des
fonctionnalités de
serveur web, du
faceting.
Lucene
Apache Lucene est un
moteur de recherche et
d'indexation, en open
source.
Reducer
Mapper
Mapper
Mapper
134. Hadoop
Distribution du l’algo en Map Reduce
Apache : 13 Apache : 44 Apache : 2
Lucene : 10
Open : 19
Solr : 10
Solr : 10 Manifold : 1Nœud 1 Nœud 3Nœud 2 Nœud 4
138. Créé par Doug Cutting
Crawler Web
Permet de crawler un large
volume de données
Basé sur Hadoop
Nutch
139. Projet Apache
Surcouche d’Hadoop
Permet de déployer sur Hadoop des
traitements tel que:
Identification de language
Extraction de contenu (Tika)
Pipeline UIMA
Avant l’ingestion dans Solr
Behemoth
140. Possibilité de stocker l’index de Solr sur HDFS
Stockage de gros volume de donnée
Gestion de la réplication
Utilisation d’un cluster Hadoop existant
A venir: Possibilité de créer l’index à l’aide de
job Map Reduce
Augmentation performance d’indexation sur de
gros volumes de données
Solr directement couplé avec Hadoop