[spip-dev] Critere "recherche" et limitation du nombre de resultats : performance

Bonjour,

Je suis en train de programmer une page présentant les résultat de
recherche "à la google" (avec une ligne "précedente - 1 - 2 - 3 -
suivant" en bas). Le genre de truc inutile donc indispensable.

J'ai regardé le code concernant le critère {recherche] mais je n'arrive
pas à voir si une boucle

  <BOUCLE_rchart(ARTICLES){recherche}{par points}{inverse}{0,10}>

est vraiment plus rapide qu'une boucle :

  <BOUCLE_rchart(ARTICLES){recherche}{par points}{inverse}>

c'est-à-dire exactement la même sans la limite {0,10}.

Dans le premier cas je ne peux pas connaitre le nombre exact de
résultats (#TOTAL_BOUCLE bloque à 11) et ça m'ennuie un peu.

Merci d'avance,

J'ai regardé le code concernant le critère {recherche] mais je n'arrive
pas à voir si une boucle

  <BOUCLE_rchart(ARTICLES){recherche}{par points}{inverse}{0,10}>

est vraiment plus rapide qu'une boucle :

  <BOUCLE_rchart(ARTICLES){recherche}{par points}{inverse}>

Pas sûr, non. Le calcul des points est fait sur l'ensemble de la table
spip_index_articles, avant le tri, et c'est sûrement ça le facteur limitant.
Par contre tu peux essayer d'éviter de faire le même calcul deux fois de
suite, en stockant les résultats qui t'intéressent dans un tableau php pour
ne faire qu'une seule boucle.

résultats (#TOTAL_BOUCLE bloque à 11) et ça m'ennuie un peu.

C'est le problème de MySQL, qui donne mysql_num_row() = 11 quand il y a un
LIMIT. Si on trouvait une option permettant de contourner ça, ça vaudrait
une nouvelle balise SPIP, je pense...

-- Fil