java.lang.ClassNotFoundException: org.tartarus.snowball.ext.frenchStemmer

120 views
Skip to first unread message

clo

unread,
Jul 31, 2012, 5:11:54 AM7/31/12
to elastics...@googlegroups.com
J'ai cette exception sur un essai comme:

curl -POST "http://localhost:9200/haystack/_analyze?analyzer=fr&pretty=true" -d 'que pour de quoi the an a organizations'

ou l''analyser 'fr' est défini par
'fr': {
        "type": "snowball",
        "language": "french",
    }

j'utilise la version "0.19.3" de ES, et il est lancé à l'aide du wrapper.
J'ai vérifié le classpath qui contient bien lucene-analyzers-3.6.0.jar. Je n'ai  pas remarqué d'autre anormalité (pour le moment, je ne suis pas allée trop loin non plus).
Si quelqu'un a une idée... merci d'avance
  Claude

clo

unread,
Aug 1, 2012, 7:17:25 AM8/1/12
to elastics...@googlegroups.com
Bon, je fais les questions et les réponses toute seule... mais si cas peut aider quelqu'un.
Il suffit de changer 'french' en 'French'

Very simple

  Claude

Jérôme Mainaud

unread,
Aug 1, 2012, 8:54:15 AM8/1/12
to elastics...@googlegroups.com
Subtil et franchement à la limite du bug (au moins le message d'erreur devrait être plus explicite.)

--
Jérôme Mainaud
jer...@mainaud.com



--
---
Vous pouvez également poster et consulter les réponses en anglais sur le groupe Elasticsearch https://groups.google.com/group/elasticsearch
 
Si vous avez également posté votre question sur la mailing list elasti...@googlegroups.com, merci d'indiquer ici le lien vers cette discussion pour faciliter le suivi.
 
Twitter : @ElasticsearchFR https://twitter.com/#!/ElasticsearchFR
Site web (English) : http://www.elasticsearch.org/

David Pilato

unread,
Aug 1, 2012, 9:27:17 AM8/1/12
to elastics...@googlegroups.com

Le pire est que je me suis aussi fait avoir il y a quelques mois mais j'avais complètement zappé cette histoire. Sinon, Claude aurait pu avoir une réponse plus rapide.

 

Foutue mémoire de poisson rouge amnésique !

 

En passant, comme tu fais du français, j'en profite pour dire qu'il y a un oubli dans le filtre Elision (https://issues.apache.org/jira/browse/LUCENE-3931). Du coup, si tu veux aussi filtrer les "d apostrophe", il faut que tu configures à la main ton élision par exemple ainsi :

{
   "index":{
      "analysis":{
         "analyzer":{
            "francais":{
               "type":"custom",
               "tokenizer":"standard",
               "filter":[
                  "lowercase",
                  "stop_francais",
                  "fr_stemmer",
                  "asciifolding",
                  "elision"
               ]
            },
            "containsText":{
               "tokenizer":"whitespace",
               "filter":[
                  "asciifolding",
                  "lowercase",
                  "autocomplete"
               ]
            }
         },
         "filter":{
            "stop_francais":{
               "type":"stop",
               "stopwords":[
                  "_french_"
               ]
            },
            "fr_stemmer":{
               "type":"stemmer",
               "name":"french"
            },
            "elision":{
               "type":"elision",
               "articles":[
                  "l",
                  "m",
                  "t",
                  "qu",
                  "n",
                  "s",
                  "j",
                  "d"
               ]
            }
         }
      }
   }
}

 

 

 

 

David.


--
David Pilato
http://www.scrutmydocs.org/
http://dev.david.pilato.fr/
Twitter : @dadoonet / @elasticsearchfr / @scrutmydocs

clo

unread,
Aug 1, 2012, 11:16:44 AM8/1/12
to elastics...@googlegroups.com
C'est pas grave (la mémoire de poisson rouge..., ça m'a permis d'apprendre pas mal de choses qui finiront bien par servir). En tout cas merci pour la config special FR
Je venais de tomber sur le "d" qui manque dans l'élision.
Je crois bien que ta config va me faire gagner quelques heures.
  Claude


-- 
Claude Huchet  -- Coopérative Quinode

David Pilato

unread,
Aug 1, 2012, 11:28:23 AM8/1/12
to elastics...@googlegroups.com

Cool.

 

Attention. Il y a un bloc qu'il faut supprimer (containsText). La vraie conf est celle-ci.

 

 

{
   "index":{
      "analysis":{
         "analyzer":{
            "francais":{
               "type":"custom",
               "tokenizer":"standard",
               "filter":[
                  "lowercase",
                  "stop_francais",
                  "fr_stemmer",
                  "asciifolding",
                  "elision"
               ]
            }
         },

clo

unread,
Aug 1, 2012, 11:36:33 AM8/1/12
to elastics...@googlegroups.com
justement, il te sert à quoi le bloc "containsText" et c'est quoi le filtre "autocomplete"?
De mon coté je suis en train d'essayer de plier Haystack à mes besoins.
  Claude


David Pilato

unread,
Aug 1, 2012, 11:47:00 AM8/1/12
to elastics...@googlegroups.com

Ca me sert pour faire de l'autocomplete sur des champs.

 

En gros, j'ai configuré ça comme ça:

{
   "index":{
      "analysis":{
         "analyzer":{
            "autocomplete":{
               "tokenizer":"whitespace",
               "filter":[
                  "asciifolding",
                  "lowercase",
                  "autocomplete"
               ]
            }
         },
         "filter":{
            "autocomplete":{
               "type":"edgeNGram",
               "min_gram":"2",
               "max_gram":"15",
               "side":"front"
            }
         }
      }
   }
}

 

Ensuite j'applique l'analyzer autocomplete sur les champs que je souhaite en autocomplete.

clo

unread,
Aug 1, 2012, 12:00:19 PM8/1/12
to elastics...@googlegroups.com
En fait c'est Haystack qui fait ce boulot pour moi. Mais il est moins complet que toi.
Merci encore.
  Claude
 
Reply all
Reply to author
Forward
0 new messages