Bonjour

Le 19/04/2018 à 13:47, eric a écrit :
```
//contrôle de la longueur de chaîne à considérer
     $min_long = defined('_RECHERCHE_MIN_CAR') ? _RECHERCHE_MIN_CAR :
4;

        // s'il n'y a qu'un mot mais <= 3 lettres, il faut le chercher
avec une *
        // ex: RFC => RFC* ; car mysql fulltext n'indexe pas ces mots
        if (preg_match('/^\w{1,' . $min_long-1 . '}$/', $recherche)) {
                $recherche .= '*';
        }
```

L'ajout d'un tableau, contenant les mots de 3 lettres à considérer,
qu'il serait possible de déclarer dans mes_options.php, serait
également peut-être intéressant ?

Eric

Je ne sais pas finalement quelle est la demande exacte mais j'ai eu ce souci sur plusieurs mini moteurs de recherche en Spip pour lesquels j'avais besoin de trouver de façon plus précise des mots de 3 lettres (des sigles, des mots comme DVD, CMP, etc ...) et je suis remonté à mySQL sur divers paramètres comme ft_min_word_len qui permet de définir la taille mini des mots en index fulltext ... le défaut étant 4 je suppose que l'* est pour contourner cette limite quand on n'a pas accès au paramètrage de mySQL.

https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_ft_min_word_len

La lecture avait été fort intéressante aussi sur les stopwords (mots trop courants pas indexés qui arrivent en masse quand on baisse la taille mini) et sur les résultats ignorés, par ex quand un résultat retourne plus de 50% des enregistrements sur lesquels on recherche, c'est ignoré. Cette limite est aussi ajustable, mais ce genre de chose rend vite fou quand on fait des tests sur une 10aine d'enregistrements ... au delà de 4 résultats c'est ignoré.

Après je ne connais pas forcément le fonctionnement de la recherche spip donc mes remarques sont peut-être à côté de la plaque. Mais je pense qu'un paquet de mots de 3 lettres à considérer ne changera rien si ft_min_word_len est toujours à 4 ?

Pierre
_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à  spip-...@rezo.net

Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

Infos : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Répondre à