[PMB-DEVEL] Re: FULLTEXT/REGEXP, le retour

2003-09-23 Par sujet François Lemarchand
Selon François Lemarchand <[EMAIL PROTECTED]>:

> Bon, c'est commité, mais assez brut 

Oops, j'ai oublié d'inclure le restricteur sur type de
document que Christophe a rajouté !!!

Si c'est pas réparé aujourdhui, c'est que c'est en cours...

-- 
François Lemarchand
homepage : http://balno.free.fr/
PhpMyBibli : http://phpmybibli.sourceforge.net

Liste de diffusion phpmybibli.devel
Pour se désinscrire : mailto:[EMAIL PROTECTED]



[PMB-DEVEL] Re: FULLTEXT/REGEXP, le retour

2003-09-23 Par sujet François Lemarchand
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

[PMB-DEVEL] Re: FULLTEXT/REGEXP, le retour

2003-09-23 Par sujet François Lemarchand
Selon Eric ROBERT <[EMAIL PROTECTED]>:

> j'aurais bien voulu tester mais je ne sais pas comment
> faire !
> 
> 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 !

OK, j'ai pu bosser un peu dans l'heure de midi, je balance 
le tout fonctionnel ce soir.

En fait, il faudrait s'arranger pour approximer l'algo 
qu'ils utilisent pour déduire les indices de pertinence de 
la recherche FULLTEXT. J'ai pas trouvé trop de 
renseignements. A vu de nez, il me semble que la place du 
mot dans la structure est prise en compte (exemple. pour 
deux trucs qui matchent, celui qui a le mot au début a un 
meilleur indice). Je crois de plus en plus qu'ils ont codé 
ça pour faire des moteurs de rech. sur des sites.


Bon, sans épiloguer, je balance le tout ce soir et on 
voit...

A+

 

Liste de diffusion phpmybibli.devel
Pour se désinscrire : mailto:[EMAIL PROTECTED]