Précédent   Forum du club des développeurs et IT Pro > Java > Serveurs, conteneurs, et Java EE
Serveurs, conteneurs, et Java EE Forum d'entraide sur la spécification Java EE, les serveurs d'application Java EE (GlassFish, JBoss, JOnAS, Weblogic, Websphere...) ou partiellement Java EE (Tomcat, Jetty, Spring DM...), ainsi que la spécification OSGi et ses implémentations (Equinox, Felix...). Avant de poster -> FAQ Java EE - Les cours OSGi
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 01/04/2012, 22h09   #1
Yogui
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 722
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 722
Points : 28 861
Points : 28 861
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)

Citation:
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 !
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 40
Vieux 02/04/2012, 15h37   #2
ok.Idriss
Responsable Modération

 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et auditeur au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 3 794
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 22
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et auditeur au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 3 794
Points : 12 152
Points : 12 152
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
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2012, 12h28   #3
tvibes
Nouveau Membre du Club
 
Thibaud Vibes
Inscription : juin 2008
Messages : 13
Détails du profil
Informations personnelles :
Nom : Thibaud Vibes

Informations forums :
Inscription : juin 2008
Messages : 13
Points : 36
Points : 36
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
tvibes est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 04/04/2012, 20h07   #4
request
Membre Expert
 
Avatar de request
 
Inscription : novembre 2002
Messages : 328
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 328
Points : 1 121
Points : 1 121
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.
request est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2012, 22h55   #5
Yogui
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 722
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 722
Points : 28 861
Points : 28 861
@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.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2012, 09h36   #6
tvibes
Nouveau Membre du Club
 
Thibaud Vibes
Inscription : juin 2008
Messages : 13
Détails du profil
Informations personnelles :
Nom : Thibaud Vibes

Informations forums :
Inscription : juin 2008
Messages : 13
Points : 36
Points : 36
@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.
tvibes est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/04/2012, 22h05   #7
Yogui
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 722
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 722
Points : 28 861
Points : 28 861
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...
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2012, 09h53   #8
jfsenechal
Membre actif
 
Homme Jean-François
Développeur Web
Inscription : février 2003
Messages : 132
Détails du profil
Informations personnelles :
Nom : Homme Jean-François
Âge : 33
Localisation : Belgique

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

Informations forums :
Inscription : février 2003
Messages : 132
Points : 161
Points : 161
Citation:
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
jfsenechal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2012, 17h09   #9
nils nicolas
Invité de passage
 
Inscription : 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.
nils nicolas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2012, 19h09   #10
tvibes
Nouveau Membre du Club
 
Thibaud Vibes
Inscription : juin 2008
Messages : 13
Détails du profil
Informations personnelles :
Nom : Thibaud Vibes

Informations forums :
Inscription : juin 2008
Messages : 13
Points : 36
Points : 36
@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"
tvibes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2012, 23h26   #11
Yogui
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 722
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 722
Points : 28 861
Points : 28 861
@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).
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h52.


 
 
 
 
Partenaires

Hébergement Web