Problème avec ElasticSearch sur ScenariBuilder 6.5

Bonjour
J’ai tenté de compiler une image de notre serveur “Portail de la documentation” en test dans ScBuilder 6.5 et la génération est en échec. Voici le message d’erreur :

Elasticsearch is not available or is not in green status.

Rebuild ES index from 'unistradocdev~_all~depot@b~jbfegr5eebaf8snap388cqj6ljab8p4cpj7' to 'unistradocdev~_all~depot@a~j1p8pomoubc95lmup28d0okauibdlb5egb3' failed.

method [PUT], host [http://127.0.0.1:9811], URI [unistradocdev~_all~depot@a~j1p8pomoubc95lmup28d0okauibdlb5egb3], status line [HTTP/1.1 400 Bad Request] {"error":{"root_cause":[{"type"illegal_argument_exception","reason"Custom Analyzer [sc_french_suggest] failed to find char_filter under name [sc_french_char_filter]"}],"type"illegal_argument_exception","reason"Custom Analyzer [sc_french_suggest] failed to find char_filter under name [sc_french_char_filter]"},"status":400}

ElasticSearch est bien démarré.
Si je comprends bien, le problème est dans la configuration envoyée à ElasticSearch, l’analyseur sc_french_suggest pointe vers un char_filter sc_french_char_filter qui n’existe pas.

En version 6.4, tout fonctionnait avec ce freeAnalysis dans depot.portlet :

{    
  "analyzer": {
        "sc_french_suggest":{
            "type":"custom",
             "char_filter":["sc_french_char_filter"],
            "tokenizer":"standard",
            "filter":["lowercase","sc_french_elision"]
        },
        "exact_analyzer":{
            "type":"custom",
            "tokenizer":"standard",
            "filter":["lowercase"]
        }
    }
}

J’ai tenté d’y ajouter une définition de char_filter mais rien à faire, toujours la même erreur.
Suis-je passé à coté de quelque-chose dans la note de version de la 6.5 ?
Merci pour votre aide.

Christophe Scherrer
Université de Strasbourg

Bonjour Christophe,

On a en effet supprimé le `@predefinedAnalysis=french` des directives d’indexation dans SCENANRIbuilder (tu as du voir passer cet attribut en erreur lors du passage en 6.5), qui posait entre autre le “charFilter” indiqué comme manquant dans ta configuration “free”

… pour se rapprocher des usages plus génériques préconisés par elasticSearch.

Pour te débloquer : supprime les 2 directives `sc_french_char_filter`et`sc_french_elision`.

Il manquera alors surement la lemmatisation. Tu peux la retrouver en fouinant coté doc de elasticSearch… ou en attendant le retour de @tha qui apportera plus de précisions sur ce sujet.

Antoine

Kelis

Hello,

Il est assez logique que du free ajouté dans un modèle sur mesure ne passe pas forcément facilement d’une version medium de Scenari à une autre. C’est le propre du free, on ne peut pas prévoir les migrations ni imaginer tous les usages pour les documenter dans une note de version.

Attention, un portal avec du free demande nécessairement le passage d’un modélisateur expérimenté sur la modélisation pour s’assurer de la cohérence de la montée de version. Si tu veux juste regarder, c’est chouette. Mais je te déconseille tout passage en production de la version que tu aurais migrée.

Tu trouveras la définition du french analyzer d’ES ici : Language analyzers | Elasticsearch Reference

Voilà aussi la définition de sc_french_char_filter présent en 6.4.

"sc_french_char_filter": {
"type": "mapping",
"mappings": [
"à => a",
"â => a",
"ç => c",
"é => e",
"è => e",
"ê => e",
"ë => e",
"î => i",
"ï => i",
"ô => o",
"ù => u",
"û => u",
"ü => u",
"À => a",
"Â => a",
"Ç => c",
"É => e",
"È => e",
"Ê => e",
"Ë => e",
"Î => i",
"Ï => i",
"Ô => o",
"Ù => u",
"Û => u",
"Ü => u"
]
}

Tu peux le redéclarer sur ton portal si tu le souhaites.

Attention aussi, en scenari 6.5, on recommande la dernière version d’ES 9 disponible.

Thibaut

Merci Antoine, merci Thibaut :slightly_smiling_face:
Je vais étudier les pistes que vous m’avez donné et je vous tiens au courant.
Christophe