Salut tout le monde,
Bon, c'est commité, mais assez brut (j'ai laissé l'ancien
code en commentaires), plus deux messages à rajouter dans
fichiers de loc. Pour l'instant, cela ne crée pas la barre
d'indice, j'affiche juste un pourcentage :
(indice_rech/indice_max_rech)*100.
note : pour ma culture, est-ce que quelqu'un à une méthode
simple pour limiter à 2 chiffres après la virgule ? C'est
con, mais j'y arrive pas ;-)
Au niveau de l'indice de confiance, je suis qu'à moitié
satisfait pour les regexp. Il faudrait trouver une autre
forme de pondération, peut-être tenir compte du nombre de
mots dégagés de la saisie, ou affiner les facteurs... Y'a à
réfléchir là... Je suis pas trop pour expliquer la bidouille
dans l'application même, ça ne concerne que nous et
l'utilisateur final, je pense qu'il n'en a rien à cirer ;-)
J'y retourne de ce pas, car j'ai l'impression que la
recherche switche pas sur une regexp en cas d'échec du
match/against !!! Merci de tester quand même le truc et de
faire des commentaires...
A+
PS. Au fait, Gautier, pour cette petite barre, tu n'aurais
pas un de ces trucs killer à base d'images et de CSS ? Ca me
gonfle d'utiliser un tableau...
Selon Eric ROBERT <[EMAIL PROTECTED]>:
> je suis OK sur ta méthode mais je pense qu'il va falloir
> indiquer quelle a
> été le type de recherche utilisée, histoire que le
> chercheur ne soit pas
> surpris le coup des indices de pertinence avec les regexp
> n'est pas
> forcément idéal, il va falloir indiquer que les mots ont
> plus de poids s'ils
> sont stockés dans le titre plutôt que dans le résumé, etc
> etc !
>
> Commit ton truc et on va tester !
>
> Eric
>
>
> - Original Message -
> From: "François Lemarchand"
> <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Monday, September 22, 2003 12:27 AM
> Subject: [PMB-DEVEL] Re: [PHPMYBIBLI-DEVEL]
> FULLTEXT/REGEXP, le retour
>
>
> > Bon, voila comment j'ai procédé, mais cela peut être
> adapté
> > suivant les commentaires que vous pourrez faire.
> >
> > Je prend un exemple pour simplifier (issu de la base
> de
> > bueil) et assez tordu en même temps pour me permettre
> de
> > pointer un des problèmes de la recherche par titre où
> il
> > n'y a pas d'autorités (et ça, on n'y pourra jamais
> rien...)
> >
> > Rappel du problème :
> > l'utilisateur fournit une chaîne.
> > la chaîne est divisée en mots.
> > si tous les mots ont plus de trois caractères, on
> utilisera
> > la méthode MATCH/AGAINST (fulltext).
> > si les ou un des mots comprennent 3 ou moins
> caractères, on
> > switche sur la recherche REGEXP.
> > Les mots vides sont éliminés de la requête utilisateur
> (le,
> > la, les, l', typiquement.
> > Si l'utilisateur a saisi des caractères utilisés dans
> les
> > masques d'expressions régulières (|$, ^ et autres),
> j'ai
> > considéré qu'il avait saisi une expression régulière et
> il
> > n'y a aucun traitement (je pars du principe que dans
> ce
> > cas, il sait ce qu'il fait).
> > Là dessus vient se greffer la nécessité de retourner
> un
> > indice de pertinence pour chaque résultat retourné (tri
> par
> > ordre décroissant de pertinence + on fera une petite
> image
> > pour visualiser l'indice de confiance du résultat).
> >
> > Je prend l'exemple 'vietnam' saisi en recherche titre
> > Le mot fait plus de 4 caractères, donc MATCH/AGAINST :
> la
> > requête générée par la fonction test_title_query() est
> :
> >
> > select *,MATCH (index_tit1,index_tit2,index_tit3,
> > index_tit4, index_serie) AGAINST ('vietnam') AS indice
> from
> > notices WHERE MATCH (index_tit1,index_tit2,index_tit3,
> > index_tit4, index_serie) AGAINST ('vietnam') ORDER BY
> MATCH
> > (index_tit1,index_tit2,index_tit3, index_tit4,
> index_serie)
> > AGAINST ('vietnam') DESC
> >
> > 1 résultat avec son indice de pertinence :
> >
> > Ho Chi Minh 7.2678657682646
> >
> > Ca colle : le sous-titre est 'de l'Indochine au
> Vietnam'
> > donc c'est normal que ça sorte.
> > Cependant, je trouve ça bizarre parce que j'ai un peu
> > parcouru la base de Bueil. J'ai l'impression que je
> devrais
> > avoir plus de résultats.
> >
> > Comme je suis un bibliothécaire avec de l'expérience
> ;-),
> > je me dis : 'à 100 contre un, la BDT a saisi vietnam
> avec
> > un tiret !!!' (les deux orthographes sont admises et
> la
> > rêgle de catalogage dit qu'on doit saisir le titre
> > exactement comme il figure sur la page de titre du
> livre).
> > De toutes les façons, pour cet exemple, je suis sûr que
> les
> > trois quarts des gens seraient passés par la recherche
> > catégorie où c'est une autorité, donc le problème se
> lève.
> > On aurait pu faire aussi en titre 'vietnam|viet-nam'
> pour
> > aboutir, mais il faut connaître un peu les regexp...
> >
> > Je saisis donc 'viet-nam'.
> >
> > première chose que fait la fonction test_title_query()
> :
> > virer le tiret pour diviser tout ça en mots (de toute
> > façon, il est exclu de index_tit1 quand on fait le
> 'pseudo-
> > index' qui sert à la recherche).
> >
> > Ca devient 'viet na