IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Documents Java Discussion :

[Lucene] Lucene et les accents bis


Sujet :

Documents Java

  1. #1
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut [Lucene] Lucene et les accents bis
    Je fais suite au post intitulé [Lucene] Lucene et les accents

    qui ne répond pas à la question malgrès sont état résolut et que d'autre personne se pose la question comme djaize par exmple.

    après mes debuts de recherche ou plutot de constat en utilisant le frenchAnalyser sur une table assez conséquente et remplie de tout et n'importe quoi.

    si je recherche le mot lumiere ou lumiére le résultat est : (lumiere, lumieres, lumiére, lumiéres,Lumiere, Lumieres, Lumiére, Lumiéres)

    le è est totalement exclusif lumière le résultat est : (lumière , lumières,Lumière,Lumières)

    ici les résultat en majuscule sont totalement ignoré

    lumi?re ramène exclusivement les résultats en majuscule (LUMIERE,LUMIÈRE) pas de pluriel (peut être que le cas n'est pas présent ds mes tables).

    lumiere~ renvoie l'ensemble des résultat précedent et même plus comme le disait djaize.

    je vais voir si l'on peut configurer ca en esperant que oui et si vous avancez aussi la dessus je suis preneur.


    merci

  2. #2
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Avant tout j'ai trouve un forum consacre à Lucene

    http://www.nabble.com/Lucene---Java-Users-f45.html

    J'ai résolu mon problème de recherche d'accent en modifiant le FranchAnalyser comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    /**
       * Creates a TokenStream which tokenizes all the text in the provided Reader.
       *
       * @return A TokenStream build from a StandardTokenizer filtered with
       *         StandardFilter, StopFilter, FrenchStemFilter and LowerCaseFilter
       */
      public final TokenStream tokenStream(String fieldName, Reader reader) {
     
        if (fieldName == null) throw new IllegalArgumentException("fieldName must not be null");
        if (reader == null) throw new IllegalArgumentException("reader must not be null");
     
        /* initialisation du token */
        TokenStream result = new StandardTokenizer(reader);
         result = new StandardFilter(result);
         result = new StopFilter(result, stoptable);      
        result = new FrenchStemFilter(result, excltable);
        // Convert to lowercase after stemming!
        result = new LowerCaseFilter(result);
        return result;
      }
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    /**
       * Creates a TokenStream which tokenizes all the text in the provided Reader.
       *
       * @return A TokenStream build from a StandardTokenizer filtered with
       *         StandardFilter, StopFilter, FrenchStemFilter and LowerCaseFilter
       */
      public final TokenStream tokenStream(String fieldName, Reader reader) {
     
        if (fieldName == null) throw new IllegalArgumentException("fieldName must not be null");
        if (reader == null) throw new IllegalArgumentException("reader must not be null");
     
        /* initialisation du token */
        TokenStream result = new StandardTokenizer(reader);
        /* on retire apostrophe*/
        result = new StandardFilter(result);
        /* on retire article adjectif */
        result = new StopFilter(result, stoptable);
     
        result = new ISOLatin1AccentFilter(result);
     
        result = new FrenchStemFilter(result, excltable);
        // Convert to lowercase after stemming!
        result = new LowerCaseFilter(result);
        return result;
      }
    en ajoutant la ligne ISOLatin1AccentFilter j'ai réindexé mes données puis recommencer la recherche et la miracle plus de problème

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 14
    Par défaut
    Bonjour à tous,

    je suis tombé sur ce post 1 an après le mien.
    La solution que j'ai mise en place est différente de celle proposée par "link256".
    Après avoir épluché ce même forum anglophone (nabble), j'ai fait le choix de :
    • Ne pas modifier le code "Lucene", ainsi, les modifications n'ont pas a être reportées dans une nouvelle version disponible au téléchargement.
    • Récupérer le traitement effectué par le ISOLatin1AccentFilter et l'appliquer directement dans mon code


    Au final, je suis plutôt satisfait: je peux migrer facilement dans une nouvelle version de Lucene, et de plus, j'ai la main sur le traitement de transformation des caractères que j'ai pu adapter aux spécificités "métiers" de mon outils.

    Voili voilou

    Olivier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FoxPro]Instruction pour enlever les accents ?
    Par Fab-FoxPro dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 02/01/2025, 15h09
  2. [Lucene] Lucene et les accents
    Par ngazet dans le forum Documents
    Réponses: 5
    Dernier message: 22/06/2009, 13h24
  3. [JDBC] Problème avec les accents
    Par seawolfm dans le forum Administration
    Réponses: 2
    Dernier message: 29/01/2004, 14h56
  4. les accents et printf
    Par remi77 dans le forum C
    Réponses: 5
    Dernier message: 07/07/2003, 20h53
  5. Comment afficher les accent sous mysql v4.0.13
    Par buildozer dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 09h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo