Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[php mysql] expression booleene vers requete sql

6 réponses
Avatar
dav
Bonjour,

Je m' apercois aujourd' hui que ma la fonction recherche que je suis entrain
de monter est plus complexe que ce que j' aurai pensé ...

je cherche à partir d' une expression booléene style :

// l' expression
// mot1 mot2 (mot3,mot4) mot5
//->
// (mot1) and (mot2) ((mot3) or (mot4)) and (mot5)
// sql
// (title like "% mot1 %") and
// (title like "% mot2 %") and
// ((title like "% mot3 %") or (title like "% mot4 %")) and
// (title like "% mot5 %")

chaud !
ça me semble être du récursif ! aie aie

Connaissez vous un app php qui aurait déja écrit ce genre de trucs ...

D' avance merci beaucoup
(sinon je sens que je vais me préparer une perfuse café)

David

6 réponses

Avatar
P'tit Marcel
je cherche à partir d' une expression booléene style :
// l' expression
// mot1 mot2 (mot3,mot4) mot5
//->
// (mot1) and (mot2) ((mot3) or (mot4)) and (mot5)
// sql
// (title like "% mot1 %") and
// (title like "% mot2 %") and
// ((title like "% mot3 %") or (title like "% mot4 %")) and
// (title like "% mot5 %")



la solution est dans SQL et pas dans php. à vue de nez, cette sélection
devrait convenir:

WHERE title REGEXP "mot1 mot2 (mot3|mot4) (mot5)"


--
P'tit Marcel
stats sur les forums modérés http://www.centrale-lyon.org/ng/

Avatar
loufoque
dav a dit le 13/09/2005 18:11:

Je m' apercois aujourd' hui que ma la fonction recherche que je suis entrain
de monter est plus complexe que ce que j' aurai pensé ...


Utilise plutôt les mécanismes de recherche booléenne que MySQL met à ta
disposition (bon par contre c'est vrai que c'est pas la même syntaxe).
Ce sera bien plus performant.

http://dev.mysql.com/doc/mysql/en/fulltext-boolean.html

Avatar
dav
Utilise plutôt les mécanismes de recherche booléenne que MySQL met à ta
disposition (bon par contre c'est vrai que c'est pas la même syntaxe).
Ce sera bien plus performant.

http://dev.mysql.com/doc/mysql/en/fulltext-boolean.html


Oui plus sympa, je note qu' il y a un pb avec les mots très court ?
canon gp / gp semble zappé, je crois bien que les mots référençés doivent
avoir plus de 3 caractères ?

merci

Avatar
loufoque
dav a dit le 14/09/2005 13:41:

je crois bien que les mots référençés doivent
avoir plus de 3 caractères ?


C'est la valeur par défaut mais c'est configurable.

Avatar
dav
"loufoque" a écrit dans le message de
news:432837e0$0$14410$
dav a dit le 14/09/2005 13:41:

je crois bien que les mots référençés doivent
avoir plus de 3 caractères ?


C'est la valeur par défaut mais c'est configurable.


k mici faut recompiler ?

un café hard svp :D


Avatar
loufoque
dav a dit le 15/09/2005 14:59:

k mici faut recompiler ?


Il suffit de mettre ft_min_word_len=1 dans le my.ini
Enfin peut-être qu'on peut aussi le faire avec une requête, un truc
genre SET ft_min_word_len=1.

Tu peux aussi avoir envie de modifier ft_stopword_file ou même
ft_boolean_syntax.

Voir http://dev.mysql.com/doc/mysql/en/fulltext-fine-tuning.html