Je me suis amusé à faire un plugin qui remplace le moteur de recherche
standard de SPIP par des appels aux API Web de Yahoo (dit "Yahoo
BOSS") et de Google ("Google AJAX Search API").
C'est dans _plugins_/_stable_/yagloo/ et c'est déjà en prod sur certains sites.
Je dois dire que ça a totalement fait diminuer la charge sur mes
serveurs, vu que non seulement ils n'indexent plus, mais en plus ils
ne cherchent même pas, et attendent simplement que Yahoo leur donne
les résultats...
Sur le plan technique rien de bien sorcier, le code est assez simple.
La seule chose vraiment amusante c'est une fonction recuperer_pages()
que l'on peut employer pour récupérer en parallèle plusieurs pages
web. Ca permet ainsi de récupérer 14 pages de Yahoo BOSS (pour un
total de 700 résultats) en 6s contre 25s si on fait les demandes
séquentiellement.
A l'heure actuelle le plugin nécessite php 5.2 minimum, pour CURL et
json_decode. recuperer_pages() pourrait s'enrichir de la gestion du
proxy etc, et entrer dans le core (dans inc/distant) ; il faudrait
pour cela que quelqu'un qui en a besoin ajoute les quelques lignes
manquantes et fasse les tests. Je veux bien aiguiller qui le souhaite.
Ah au fait il y a un problème avec notre système d'urls qui n'est pas
capable de nous dire "Cet URL correspond à tel objet" sans faire une
redirection. Dans ce genre de cas (fréquent) la recherche aboutit sur
une des pages de résultats... pas terrible et je ne vois pas comment
corriger ça dans le plugin -- c'est plutôt un truc à faire un niveau
du core. En attendant l statut "dev" s'impose.
2009/2/11 Fil <fil@rezo.net>:
Je me suis amusé à faire un plugin qui remplace le moteur de recherche
standard de SPIP par des appels aux API Web de Yahoo (dit "Yahoo
Ah au fait il y a un problème avec notre système d'urls qui n'est pas
capable de nous dire "Cet URL correspond à tel objet" sans faire une
redirection.
Comment ça « sans faire une redirection » ? Tu parles d'une réécriture d'URL, plutôt ?
Dans ce genre de cas (fréquent) la recherche aboutit sur
une des pages de résultats... pas terrible et je ne vois pas comment
corriger ça dans le plugin -- c'est plutôt un truc à faire un niveau
du core. En attendant l statut "dev" s'impose.
Pas compris le soucis avec ta seule description, faudra que j'installe ce plugin prometteur pour voir...
Ah au fait il y a un problème avec notre système d'urls qui n'est pas
capable de nous dire "Cet URL correspond à tel objet" sans faire une
redirection.
Comment ça « sans faire une redirection » ? Tu parles d'une réécriture
d'URL, plutôt ?
Si tu demandes à urls/propres.php de te dire à quel objet correspond
l'adresse /Mon-article.html
il va faire un Redirect 301 vers /Mon-article; or ici je ne veux pas
afficher l'article, mais simplement savoir qu'il s'agit de l'article
32 !
Ah au fait il y a un problème avec notre système d'urls qui n'est pas
capable de nous dire "Cet URL correspond à tel objet" sans faire une
redirection.
Comment ça « sans faire une redirection » ? Tu parles d'une réécriture
d'URL, plutôt ?
Si tu demandes à urls/propres.php de te dire à quel objet correspond
l'adresse /Mon-article.html
il va faire un Redirect 301 vers /Mon-article; or ici je ne veux pas
afficher l'article, mais simplement savoir qu'il s'agit de l'article
32 !
Avec les URL "html" ? Je n'ai pas ce problème avec les URL "arbo" à priori.