Publicité
+ Répondre à la discussion Actualité déjà publiée
Affichage des résultats 1 à 11 sur 11
  1. #1
    Rédacteur
    Avatar de Yogui
    Homme Profil pro Guillaume Rossolini
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 719
    Détails du profil
    Informations personnelles :
    Nom : Homme Guillaume Rossolini
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : février 2004
    Messages : 13 719
    Points : 29 152
    Points
    29 152

    Par défaut La recherche full-text avec Apache Solr

    Bonsoir,

    Voici un article que je ne parviens pas à finaliser dans le détail, mais qui me semble suffisamment avancé pour vous le présenter sans trop rougir :
    Configurer un moteur de recherche performant à l'aide d'Apache Lucene/Solr et Apache Tomcat (ou tout autre conteneur de servlets)

    Apache Lucene est un moteur d'indexation de texte permettant d'effectuer des recherches en langage naturel à l'aide de diverses manipulations automatiques du texte. Le texte indexé est enregistré sous de multiples représentations, de même pour le texte recherché, et les résultats de recherche sont déterminés suite à la comparaison de ces variantes.
    Apache Solr étend le principe de Lucene en facilitant l'administration (interface RESTful) et en ajoutant des fonctionnalités : filtres de recherche, manipulation des résultats, etc.
    Dans ce tutoriel, vous apprendrez à mettre en place un serveur Tomcat avec plusieurs schémas Solr.
    J'ai commencé la rédaction en 2010 avec Solr 1.4. Depuis, les projets Solr et Lucene ont aligné leurs versions : ils en sont maintenant (l'un et l'autre) à la version 3.5 ; la version 3.6 est prévue pour très bientôt et la version suivante sera dans la branche 4.x.
    De même, la rédaction a commencé alors que Tomcat 5.5 était encore assez répandu, et la branche 7 n'était pas encore sortie.


    N'hésitez pas à laisser vos commentaires à la suite, surtout si vous avez comparé divers moteurs full-text et que vous souhaitez partager votre expérience.

    Bonne lecture !

  2. #2
    Responsable Modération

    Avatar de ok.Idriss
    Homme Profil pro Idriss Neumann
    Consultant en SSII et ingénieur CNAM Paris (spécialité SI)
    Inscrit en
    février 2009
    Messages
    5 040
    Détails du profil
    Informations personnelles :
    Nom : Homme Idriss Neumann
    Âge : 24
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant en SSII et ingénieur CNAM Paris (spécialité SI)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2009
    Messages : 5 040
    Points : 17 560
    Points
    17 560

    Par défaut

    Bonjour.

    Merci pour ce cours qui semble très complet et d'un bon niveau, c'est exactement ce dont j'avais besoin (j’entends de plus en plus parler de Solr sans savoir exactement ce que c'est, bien sûr avec une petite idée mais ...). Je n'ai pas eu le temps de le parcourir en profondeur mais je le ferait dès que j'aurais un peu temps où en cas de besoin.

    Merci encore.

    Cordialement,
    Idriss
    mes cours sur DVP | initiation aux bases de données relationnelles | FAQ Linux | FAQ tests
    la programmation Shell | bonnes pratiques Bash | exercices shells scripts & Bash corrigés
    Merci aussi de lire les règles du club

    "Forgiveness does not change the past, but it does enlarge the future." (Paul Boese)
    Traduction approximative : le pardon ne change pas le passé mais élargit l'horizon de l'avenir.

  3. #3
    Membre du Club
    Profil pro Thibaud Vibes
    Inscrit en
    juin 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Nom : Thibaud Vibes

    Informations forums :
    Inscription : juin 2008
    Messages : 13
    Points : 40
    Points
    40

    Par défaut

    Un travail impressionnant! Merci.

    J'aurais une remarque sur le vocabulaire dans le paragraphe I-B ;-)
    La traduction de stemming n'est pas lemmatisation mais stemmatisation ou racinisation. Les 2 traitements sont légèrements différents et ce qui est décrit dans le paragraphe I-B-2-b est bien la racinisation des mots (mot -> lexème ou racine ou radical). Et c'est bien ce que Solr effectue comme traitement.

    La lemmatisation (mot -> lemme) consiste à ramener un mot à sa forme canonique, c'est à dire la plus petite unité de sens. Ce sera la forme "singulier" pour un nom, la forme infinitive pour un verbe.
    Les dictionnaires par exemples recensent tous les lemmes d'une langues.

    Voici un exemple qui illustre la différence entre les 2. Prenons 3 mots :
    augmenter / augmentez / augmentation

    La lemmatisation donne 2 lemmes :
    augmenter / augmentation

    La racinisation(stemmatisation) donne 1 lexème :
    augment

    Seule la racinisation permet de rapprocher les 3 mots et est donc plus efficace dans Solr.
    Je pense donc qu'il est plus juste d'intituler votre paragraphe "Racinisation" que "Lemmatisation".


    Voir la page wikipedia sur la racinisation
    http://fr.wikipedia.org/wiki/Racinisation


    A noter qu'il est plus difficile de mettre au point en informatique un lemmatiseur qu'un raciniseur car lemmatiser un mot dépend beaucoup de sa fonction grammaticale. Il y a beaucoup de cas où il y a ambiguïté. Ex:
    "je marche" => lemme: marcher
    "les marches de l'escalier" => lemme: marche

    Le raciniseur supprimmera conservera simplement la racine: march

  4. #4
    Membre Expert
    Avatar de request
    Inscrit en
    novembre 2002
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : novembre 2002
    Messages : 328
    Points : 1 223
    Points
    1 223

    Par défaut

    Bonjour Yogui,

    Bravo pour se travaille, c'est complet est fort intéressant.
    J’aurais bien aimé avoir lu ton article avant d'attaquer la documentation de Solr, j'aurais gagné du temps.

    Dans le chapitre 8 tu dis que le Suggester nécessite un reload, cela ne semble pas se produire dans mon cas avec la dernière version.

    Pour ceux qui veulent voir ce que cela peut donner dans un cas réél avec les modules de l'articles: suggestion, facet, highlight et full text le tout en ajax
    http://www.jardiland.com/information...he.html#erable

    Les performances sont très bonnes. SOLR est un outils mature et intéressant.

  5. #5
    Rédacteur
    Avatar de Yogui
    Homme Profil pro Guillaume Rossolini
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 719
    Détails du profil
    Informations personnelles :
    Nom : Homme Guillaume Rossolini
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : février 2004
    Messages : 13 719
    Points : 29 152
    Points
    29 152

    Par défaut

    @tvibes : Eh bien pourtant, je me suis renseigné pendant un bon moment et j'ai fait relire spécialement cette partie de l'article. Merci pour avoir relevé cette coquille, c'est corrigé.

    @request : ma foi, j'aurais moi aussi avoir eu un cours d'intro un peu plus facile d'approche que le tuto qui était disponible sur le Wiki officiel à l'époque
    J'espère que mon article est un élément de réponse à ce problème.

  6. #6
    Membre du Club
    Profil pro Thibaud Vibes
    Inscrit en
    juin 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Nom : Thibaud Vibes

    Informations forums :
    Inscription : juin 2008
    Messages : 13
    Points : 40
    Points
    40

    Par défaut

    @Yogui @request Quand j'ai commencé avec Solr j'ai acheté le EBook
    Solr 1.4 - Enterprise Search Server
    (moins de 30€ il me semble) Il m'a été d'une grande aide.

  7. #7
    Rédacteur
    Avatar de Yogui
    Homme Profil pro Guillaume Rossolini
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 719
    Détails du profil
    Informations personnelles :
    Nom : Homme Guillaume Rossolini
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : février 2004
    Messages : 13 719
    Points : 29 152
    Points
    29 152

    Par défaut

    En effet, j'en ai fait l'acquisition également pour mes débuts. Les publications de LucidWorks sont aussi très utiles, surtout que Yonik est (encore aujourd'hui) très actif sur la mailing list officielle, il sait donc très bien de quoi il parle ! Malheureusement, comme toute documentation, ces publications (ainsi que la mienne) perdent peu à peu de leur fraîcheur...

  8. #8
    Membre actif
    Homme Profil pro Jean-François
    Développeur Web
    Inscrit en
    février 2003
    Messages
    163
    Détails du profil
    Informations personnelles :
    Nom : Homme Jean-François
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : février 2003
    Messages : 163
    Points : 170
    Points
    170

    Par défaut

    Pour ceux qui veulent voir ce que cela peut donner dans un cas réél avec les modules de l'articles: suggestion, facet, highlight et full text le tout en ajax
    http://www.jardiland.com/information...he.html#erable
    @request

    Super ton interface !

    C'est un code issue d'un projet open source qu'on peut se procurer quelque part ? ou est-ce fait maison ?

    Merci

  9. #9
    Invité de passage
    Inscrit en
    avril 2012
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : avril 2012
    Messages : 1
    Points : 1
    Points
    1

    Par défaut Coquille ?

    Bonjour,

    Merci beaucoup pour ce tuto vraiment complet et utile pour débuter.

    Arès avoir buté sur un point, il me semble que le schéma décrit à la section IV-A-2-3 ne peut pas fonctionner car les champs "allEnSearch" et "allFrSearch" ne sont pas déclarés avec multiValued="true".

    J'ai dû ajouter ce paramètre pour que l'import du xml se déroule sans erreur.

    Comme je débute tout juste sur Solr je dis peut-être une bêtise.

  10. #10
    Membre du Club
    Profil pro Thibaud Vibes
    Inscrit en
    juin 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Nom : Thibaud Vibes

    Informations forums :
    Inscription : juin 2008
    Messages : 13
    Points : 40
    Points
    40

    Par défaut

    @nils nicolas
    Je confirme.
    L'utilisation de 2 <copyField /> pour chacun des champs "allEnSearch" et "allFrSearch" (paragraphe IV-C) rend obligatoire la déclaration multiValued="true"



    -- Edit --
    A la décharge de Yogui, le schemas.xml fourni dans le *.zip (paragraphe VIII-C) contient bien les multiValued="true"

  11. #11
    Rédacteur
    Avatar de Yogui
    Homme Profil pro Guillaume Rossolini
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 719
    Détails du profil
    Informations personnelles :
    Nom : Homme Guillaume Rossolini
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : février 2004
    Messages : 13 719
    Points : 29 152
    Points
    29 152

    Par défaut

    @nils nicolas, @tvibes :
    Merci pour vos justes remarques. Je corrigerai sous peu (petit problème temporaire avec l'outil de génération/upload de l'article).

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •